Çözüm
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
açıklama
S3 için yeniden adlandırma kovası işlevi yoktur, çünkü S3'te teknik olarak klasör yoktur, bu nedenle kovadaki her dosyayı işlememiz gerekir.
Yukarıdaki kod 1. yeni bir grup oluşturur, 2. dosyaları kopyalar ve 3. eski grubu siler. Bu kadar.
Grubunuzda çok sayıda dosya varsa ve maliyetlerden endişe ediyorsanız okumaya devam edin. Sahne arkasında, kovadaki tüm dosyaların önce kopyalanıp ardından silinmesidir. Birkaç bin dosyanız varsa, önemsiz bir miktara mal olmalıdır. Aksi takdirde, bunun sizi nasıl etkileyeceğini görmek için bu yanıtı kontrol edin .
Misal
Aşağıdaki örnekte eski grubu oluşturup doldurduktan sonra dosyaları yenisiyle senkronize ediyoruz. AWS'nin ne yaptığını görmek için komutların çıkışını kontrol edin.
> # 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