Câu hỏi Cách đổi tên tên nhóm AWS S3


Sau tất cả các tác vụ di chuyển khó khăn, v.v. Chỉ cần nhận ra rằng Nếu cần phân phối nội dung bằng CNAME (ví dụ: media.abc.com). Tên nhóm cần phải bắt đầu bằng phương tiện media.abc.com/S3/amazon.com để đảm bảo nó hoạt động hoàn hảo.

Chỉ cần nhận ra rằng S3 không cho phép đổi tên trực tiếp từ giao diện điều khiển.

Có cách nào để giải quyết vấn đề này không?


76
2018-01-06 17:30


gốc




Các câu trả lời:


Tôi nghĩ cách duy nhất là tạo một thùng mới với tên chính xác và sau đó sao chép tất cả các đối tượng của bạn từ thùng cũ sang thùng mới. Bạn có thể làm điều đó bằng cách sử dụng Aws CLI.


47
2018-01-06 22:40



có bất kỳ khoản phí nào cho giải pháp trên @navjot không? - pavitran
@pavitran nope, đó vẫn là con đường để đi - Tashows
@Tashows pavitran đã hỏi về chaRges, chứ không phải chaNges. Theo như tôi biết có thực sự chi phí cho việc sao chép các mục xô, tôi tin rằng 1 GET và 1 PUT chi phí hoạt động cho mỗi mục. - guival
@guival uuh bạn là đúng, tôi đọc thay đổi. Tuy nhiên, trong khi những gì bạn nói sẽ có ý nghĩa, tôi không có bất kỳ kiến ​​thức về các khoản phí có thể. Nó sẽ rất hữu ích để gửi một liên kết, nếu bạn thấy rằng trên một tài liệu hoặc trang faq từ amazon. - Tashows
@Tashows Trên thực tế, thực sự có một mục nhập cho các hoạt động COPY trên bảng giá cho S3, nó thực sự chỉ là cùng một chi phí như làm một PUT (vì vậy không có thêm GET chi phí). - guival


Dung dịch

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 bởi 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.

Mã ở trên sẽ 1. tạo một nhóm mới, 2. sao chép các tệp trên và 3. xóa nhóm cũ. Đó là nó.

Nếu bạn có nhiều tệp trong nhóm của mình và bạn lo lắng về chi phí, thì 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ẽ chi phí một số lượng không đáng kể nếu bạn có một vài nghìn tập tin. Nếu không thì hãy kiểm tra câu trả lời này để xem điều này sẽ ảnh hưở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 một tệp 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

136
2018-04-07 10:05



Đây phải là câu trả lời được chấp nhận - Jacob Tomlinson
Câu trả lời này giống như câu trả lời được chấp nhận, ngoại trừ việc đăng bài này đưa ra một bước rất hữu ích bằng cách làm ví dụ về cách thực hiện. (Ví dụ nên được rút ngắn, mặc dù. Không cần phải hiển thị tạo một xô cũ mẫu và sử dụng biến hậu tố.) Phần giải thích của câu trả lời này không thỏa mãn tôi. Nó nói rằng việc thiếu các thư mục trong S3 là lý do tại sao thủ tục khó xử này là bắt buộc. Vì câu hỏi ban đầu không đề cập đến các thư mục, tôi không hiểu cách giải thích không có khả năng đổi tên các thùng S3. - L S
Đã thử phương pháp này ... xuất hiện để làm việc ... tuy nhiên vì một lý do kỳ lạ tôi không thể xem bất kỳ mục nào (hình ảnh). Tôi có thể điều hướng thông qua trình duyệt thông qua các mục trên bảng điều khiển s3 ... nhưng không thể xem chúng thông qua url hoặc tải xuống chúng. Bất kỳ ý tưởng tại sao? Các quyền dường như giống nhau. Có một số quyền đặc biệt để tìm kiếm không? - bmiskie
@duality_ bạn có thể thêm vào thông báo câu trả lời của mình về quyền và bạn có thể sao chép tệp bằng --acl bucket-owner-full-control(như trong đó câu trả lời) - Евгений Масленков
Nếu bạn có phiên bản trên, bạn sẽ cần phải sử dụng quản lý vòng đời để hết hạn các phiên bản ... rõ ràng: docs.aws.amazon.com/AmazonS3/latest/dev/… - carlin.scott


Có lẽ phiên bản sau của bộ công cụ AWS CLI đã cung cấp mv Tùy chọn.

$ aws --version
aws-cli/1.15.30 Python/3.6.5 Darwin/17.6.0 botocore/1.10.30

Tôi đang đổi tên nhóm bằng cách sử dụng lệnh sau:

aws s3 mv s3://old-bucket s3://new-bucket --recursive

2
2018-06-19 12:01