Cập nhật
Như đã chỉ ra bởi alberge (+1), ngày nay Giao diện dòng lệnh AWS tuyệt vời cung cấp cách tiếp cận linh hoạt nhất để tương tác với (hầu hết) mọi thứ AWS - trong khi đó nó bao gồm hầu hết các API của dịch vụ và cũng có các lệnh S3 cấp cao hơn để xử lý trường hợp sử dụng cụ thể, hãy xem tham chiếu AWS CLI cho S3 :
- sync - Đồng bộ hóa các thư mục và tiền tố S3. Trường hợp sử dụng của bạn được bao phủ bởi Ví dụ 2 (thêm mịn hạt sử dụng với
--exclude
, --include
và xử lý tiền tố vv cũng có sẵn):
Lệnh đồng bộ sau đồng bộ hóa các đối tượng dưới tiền tố và nhóm được chỉ định với các đối tượng dưới tiền tố và nhóm được chỉ định khác bằng cách sao chép đối tượng s3. [...]
aws s3 sync s3://from_my_bucket s3://to_my_other_bucket
Để hoàn thiện, tôi sẽ đề cập rằng các lệnh S3 cấp thấp hơn cũng vẫn có sẵn thông qua lệnh phụ s3api , cho phép dịch trực tiếp bất kỳ giải pháp dựa trên SDK nào sang AWS CLI trước khi áp dụng chức năng cấp cao hơn của nó.
Câu trả lời ban đầu
Việc di chuyển tệp giữa các nhóm S3 có thể thực hiện được nhờ Đối tượng PUT - API Sao chép (tiếp theo là Đối tượng DELETE ):
Việc triển khai hoạt động PUT này tạo ra một bản sao của một đối tượng đã được lưu trữ trong Amazon S3. Thao tác sao chép PUT cũng giống như thực hiện GET và sau đó là PUT. Thêm tiêu đề yêu cầu, x-amz-copy-source, thực hiện thao tác PUT sao chép đối tượng nguồn vào nhóm đích. Nguồn
Có sẵn các mẫu tương ứng cho tất cả AWS SDK hiện có, hãy xem Sao chép đối tượng trong một thao tác . Đương nhiên, giải pháp dựa trên kịch bản sẽ là lựa chọn đầu tiên rõ ràng ở đây, vì vậy Sao chép một đối tượng bằng AWS SDK cho Ruby có thể là một điểm khởi đầu tốt; nếu bạn thích Python thay vào đó, điều tương tự cũng có thể đạt được thông qua boto , hãy xem phương pháp copy_key()
trong tài liệu API S3 của boto .
PUT Object
chỉ sao chép tệp, vì vậy bạn sẽ cần xóa tệp qua ảnh DELETE Object
tĩnh sau khi thao tác sao chép thành công, nhưng đó sẽ chỉ là một vài dòng nữa khi tập lệnh tổng thể xử lý nhóm và tên tệp được đặt (cũng có các ví dụ tương ứng , xem ví dụ: Xóa một đối tượng cho mỗi yêu cầu ).