Giải pháp
aws s3 mb s3://[new-bucket]
aws s3 sync s3://[old-bucket] s3://[new-bucket]
aws s3 rb --force s3://[old-bucket]
Giải trình
Không có chức năng đổi tên nhóm cho S3 vì về mặt kỹ thuật không có thư mục nào trong S3 nên chúng tôi phải xử lý mọi tệp trong nhóm.
Đoạn mã trên sẽ 1. tạo một nhóm mới, 2. sao chép các tập tin và 3. xóa nhóm cũ. Đó là nó.
Nếu bạn có nhiều tệp trong thùng của mình và bạn lo lắng về chi phí, hãy đọc tiếp. Đằng sau những gì xảy ra là tất cả các tệp trong nhóm được sao chép đầu tiên và sau đó bị xóa. Nó sẽ có chi phí không đáng kể nếu bạn có một vài nghìn tệp. Nếu không hãy kiểm tra câu trả lời này để xem điều này sẽ tác động đến bạn như thế nào.
Thí dụ
Trong ví dụ sau, chúng tôi tạo và điền vào nhóm cũ và sau đó đồng bộ hóa các tệp với thùng mới. Kiểm tra đầu ra của các lệnh để xem AWS làm gì.
> # 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