Lösung
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
Erklärung
Es gibt keine Umbenennungs Eimer Funktionalität für S3, weil es technisch keine Ordner in S3 sind so müssen wir jede Datei im Eimer behandeln.
Der obige Code wird 1. einen neuen Bucket erstellen, 2. Dateien kopieren und 3. den alten Bucket löschen. Das ist es.
Wenn Sie viele Dateien in Ihrem Bucket haben und über die Kosten besorgt sind, lesen Sie weiter. Hinter den Kulissen passiert, dass alle Dateien innerhalb des Buckets zuerst kopiert und dann gelöscht werden. Es sollte einen unbedeutenden Betrag kosten, wenn Sie ein paar tausend Dateien haben. Andernfalls überprüfen Sie this answer, um zu sehen, wie dies sich auf Sie auswirken würde.
Beispiel
Im folgende Beispiel wir schaffen und die alten Eimer füllen und dann die Dateien auf den neuen synchronisieren. Überprüfen Sie die Ausgabe der Befehle, um zu sehen, was AWS tut.
> # bucket suffix so we keep it unique
> suffix="ieXiy2" # used `pwgen -1 -6` to get this
>
> # populate old bucket
> echo "asdf" > asdf.txt
> echo "yxcv" > yxcv.txt
> aws s3 mb s3://old-bucket-$suffix
make_bucket: old-bucket-ieXiy2
> aws s3 cp asdf.txt s3://old-bucket-$suffix/asdf.txt
upload: ./asdf.txt to s3://old-bucket-ieXiy2/asdf.txt
> aws s3 cp yxcv.txt s3://old-bucket-$suffix/yxcv.txt
upload: ./yxcv.txt to s3://old-bucket-ieXiy2/yxcv.txt
>
> # "rename" to new bucket
> aws s3 mb s3://new-bucket-$suffix
make_bucket: new-bucket-ieXiy2
> aws s3 sync s3://old-bucket-$suffix s3://new-bucket-$suffix
copy: s3://old-bucket-ieXiy2/yxcv.txt to s3://new-bucket-ieXiy2/yxcv.txt
copy: s3://old-bucket-ieXiy2/asdf.txt to s3://new-bucket-ieXiy2/asdf.txt
> aws s3 rb --force s3://old-bucket-$suffix
delete: s3://old-bucket-ieXiy2/asdf.txt
delete: s3://old-bucket-ieXiy2/yxcv.txt
remove_bucket: old-bucket-ieXiy2
sind irgendwelche Gebühren für die oben genannte Lösung @navjot? – pavitran
@pavitran nein, das ist immer noch der Weg zu gehen – Tashows
@Tashows pavitran fragte nach chArges, nicht changes. Soweit ich weiß, gibt es in der Tat Gebühren für das Kopieren von Eimer Artikel, ich glaube, 1 GET und 1 PUT Betriebskosten für jeden Artikel. – guival