Wer vor der Herausforderung steht, größere Datenmengen bisher nicht in der AWS Cloud hat, der muss bei einem Umstieg auf einen Clouddienst wie S3 dafür sorgen, dass die Daten auch irgendwie in S3 hineinkommen. Hierfür gibt es verschiedene Varianten, eine davon ist es jedoch, die Dateien mittels der AWS CLI zu kopieren. Hier gibt es zwei Kommandos, die den Datentransfer ermöglich: copy und sync.
Während mit „aws s3 cp“ Dateien einfach nur kopiert werden, erlaubt „aws s3 sync“ beispielsweise die Synchronisierung von einem lokalen Verzeichnis mit AWS S3. Bei einer Synchronisierung werden nur geänderte Dateien transferiert, was erhebliche Ressourcen bei großen Datenmengen spart. Das Basisaufruf hierfür ist:
aws s3 sync . s3://<bucket-name>
Damit werden alle Daten im aktuellen Verzeichnis (.) in den angegebenen Bucket kopiert. Vorher muss man sich allerdings mit S3 Bucket verbunden haben („aws configure“). Wie alle Parameter erlaubt auch „sync“ den Aufruf weiterer Funktionen, zum Beispiel zum explizierten Berücksichten oder Auslassen von bestimmten Dateien und Verzeichnissen. Hier ein Beispiel, bei dem nur alle Dateien/Verzeichnisse übertragen werden, die mit „1“ beginnen:
aws s3 sync . s3://<bucket-name> --exclude '*' --include "1*"
Alle S3-Kommandos der AW CLI kann man übrigens in der offiziellen Dokumentation einsehen. Für manche Anwendungen kann es auch sinnvoll sein, die maximale Übertragungsgeschwindigkeit zu S3 anzupassen.