wake-up-neo.com

So verschieben Sie Dateien mithilfe der Befehlszeile aus Amazon ec2 in den S3-Bucket

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?

19
Pacts Ramun

Erste Option sm3cmd

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

Zweite Option

Verwenden von Cli von Amazon

Aktualisieren

Wie @ tedder42 in den Kommentaren sagte, verwenden Sie anstelle von cpsync

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

24
Ethaan
aws s3 sync your-dir-name s3://your-s3-bucket-name/folder-name
  • Wichtig: Dadurch werden alle Elemente in Ihrem benannten Verzeichnis in den von Ihnen ausgewählten s3-Bucket-Ordner kopiert. Dadurch wird Ihr Verzeichnis nicht als Ganzes kopiert.

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

3
zafrin

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.

2
Tim Johnson
aws s3 mv /home/inbound/ s3://test/ --recursive --region us-west-2
1
raju

Wir haben eine Dryrun-Funktion zum Testen.

  • Zu Beginn würde ich der ec2-Instanz eine Rolle zuweisen, um lesen zu können Schreibe in S3
  • SSH in die Instanz und führen Sie Folgendes aus
  • vi tmp1.txt
  • aws s3 mv ./s3: //bucketname-bucketurl.com/ --dryrun
  • Wenn dies funktioniert, müssen Sie entweder ein Skript erstellen, um Alle Dateien mit bestimmten Dateien aus diesem Ordner in den s3-Bucket hochzuladen
  • Ich habe den folgenden Befehl in meinem Skript geschrieben, um -Dateien, die älter als 2 Minuten sind, aus dem aktuellen Verzeichnis in den Bucket/Ordner zu verschieben
  • cd dir; ls. -rt | xargs -I FILES sucht nach FILES -maxdepth 1 -Name '*. txt' -mmin +2 -exec aws s3 mv '{}' s3: //bucketurl.com
0
AKV