In meiner Amazon EC2-Instanz habe ich einen Ordner namens uploads
. In diesem Ordner habe ich 1000 Bilder. Nun möchte ich alle Bilder in meinen neuen S3-Bucket kopieren. Wie kann ich das machen?
Verwenden Sie s3cmd
s3cmd get s3://AWS_S3_Bucket/dir/file
Werfen Sie einen Blick auf diese s3cmd-Dokumentation
wenn Sie Linux verwenden, führen Sie dies in der Befehlszeile aus:
Sudo apt-get install s3cmd
oder Centos, Fedore.
yum install s3cmd
Verwendungsbeispiel:
s3cmd put my.file s3://pactsRamun/folderExample/fileExample
Verwenden von Cli von Amazon
Wie @ tedder42 in den Kommentaren sagte, verwenden Sie anstelle von cp
sync
.
Schauen Sie sich die folgende Syntax an:
aws s3 sync <source> <target> [--options]
Beispiel:
aws s3 sync . s3://my-bucket/MyFolder
Weitere Informationen und Beispiele finden Sie unter Verwalten von Objekten mithilfe von High-Level-s3-Befehlen mit der AWS-Befehlszeilenschnittstelle
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
oder Sie können den folgenden Befehl für eine ausgewählte Datei verwenden.
aws s3 sync your-dir-name/file-name s3://your-s3-bucket-name/folder-name/file-name
oder du kannst mit einem wilden Charakter alles auswählen. Beachten Sie, dass dies Ihr Verzeichnis als Ganzes kopiert, Metadaten generiert und in Ihrem s3-Bucket-Ordner speichert.
aws s3 sync . s3://your-s3-bucket-name/folder-name
Siehe meinen gesamten Blogpost auf So stellen Sie von einer EC2-Instanz aus eine Verbindung mit S3 Bucket her - AWS Help
Beachten Sie auch, dass bei aws cli, das mit S3 synchronisiert wird, Multithreading ausgeführt wird und mehrere Teile einer Datei gleichzeitig hochgeladen werden. Die Anzahl der Threads ist derzeit jedoch nicht konfigurierbar.
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2
Wir haben eine Dryrun-Funktion zum Testen.