0

Ich muss eine große Anzahl von Dateien im AWS S3-Bucket umbenennen. Jeder Datei-/Objektname wird einzeln umbenannt (basierend auf bestimmten Kriterien - es gibt kein gemeinsames "Präfix/Suffix"). Ich habe eine Liste mit 'current_filename' und 'new_filename' erstellt, die von der CLI-Konsole aus als .bat-Datei/Warteschlange ausgeführt werden kann.AWS S3-Objektschlüssel aktualisieren (Schlüsselname)

Frage: Ist es möglich, nur einen Objektschlüssel (Schlüsselname) in AWS S3-Bucket über CLI oder pro grammatisch, zu aktualisieren, ohne kopieren müssen/move-Datei wie folgt:

aws s3 cp s3: //mybucket/folder/myfilename.jpg
s3: //mybucket/folder/my_NEW_filename.jpg

ich alle anderen Objekt halten können Metadaten die gleiche, aber Dateinamen (Schlüsselname) muss sich ändern.

Bitte beraten.

SP

Antwort

0

Objekte/Dateien in Amazon S3 sind unveränderlich und nicht an oder geändert angehängt werden kann. Um das Anhängen zu simulieren, müssten Sie die gesamte Datei erneut mit den zusätzlichen Daten schreiben.

Sie müssen in ein anderes Objekt kopieren, um den Namen zu ändern. Es wäre effizient, wenn Sie zwischen s3-Buckets wechseln, anstatt lokal zu kopieren und zurückzugehen.

Wir sind in eine ähnliche Situation geraten, wie ich alle Dateien ändern werde. Sie müssen das Muster finden, um alle S3-Schlüssel zu gruppieren und das Umbenennen parallel durchzuführen. Dies ist die Schönheit eines verteilten Systems.

Wir gespeichert mit Datum/Stunde/15 Minuten Muster. Wir konnten die Umbenennung parallel durchführen, indem wir sie simultan über CLI umbenennen.

Ich hoffe, es hilft.

+0

Vielen Dank Kannaiyan für eine schnelle Antwort und teilen Sie Ihre Erfahrungen. Beraten Sie die Verwendung von cp innerhalb desselben (Produktions-) Buckets oder besser in den anderen Bucket kopieren und dann in die Produktion replizieren? Glaubst du, ist es besser, nur innerhalb des gleichen (Produktion) Eimers MV zu verwenden? Ich brauche keine ursprünglichen (Quell-) Dateien, nachdem "Umbenennen" durchgeführt wurde, aber ich versuche, das Risiko von Fehlern bei den Produktionsdaten zu mindern. Nochmals vielen Dank, SP – spcs1971

+0

Double überprüft den Prozess, den wir verwendet haben. Einen Zug ausführen, kopieren und löschen. Es gibt keine Verknüpfung im Systemprozess. Das Ausführen einer Kopie schützt vor jedem Befehlsfehler. GetMd5 empfehlen, kopieren, verifyMd5 und löschen. Es stellt sicher, dass das Quell-MD5 und das Ziel-MD5 übereinstimmen und das Objekt gut zu löschen ist. – Kannaiyan

0

Sie können den Befehl AWS S3 Move auch verwenden, um Dateien in neue Namen zu verschieben, anstatt Dateien zu kopieren und zu löschen. AWS S3 Move

# AWS Example 
aws s3 mv s3://mybucket/test.txt s3://mybucket/test2.txt 

# Copy file from local to S3 
aws s3 cp robots.txt s3://ascisolutions.com 

# Rename/move file 
aws s3 mv s3://ascisolutions.com/robots.txt s3://ascisolutions.com/robots.txt.bak 

# Move file to a directory in S3 
aws s3 mv s3://ascisolutions.com/robots.txt.bak s3://ascisolutions.com/test/robots.txt.bak 

# Rename/move file 
aws s3 mv s3://ascisolutions.com/test/robots.txt.bak s3://ascisolutions.com/test/robots.txt 

# Move file back to root directory of S3 bucket 
aws s3 mv s3://ascisolutions.com/test/robots.txt s3://ascisolutions.com/robots.txt 
Verwandte Themen