2014-09-11 13 views
5

Tôi đang sử dụng API JavaScript Node.js cho Amazon AWS S3 và muốn đặt đối tượng hết hạn một số ngày được chỉ định sau khi đối tượng được tạo. Tức là, nếu tôi tạo và tải lên một đối tượng mới, tôi muốn nó tự động xóa chính nó 100 ngày hoặc lâu hơn kể từ bây giờ. Điều này có thể đặt hết hạn cho xóa trên cơ sở cho mỗi đối tượng không?Đặt hết hạn đối tượng S3 (để xóa) bằng JavaScript API

Các documentation cho thấy đây có thể là có thể:

Amazon S3 cung cấp một hành động hết hạn mà bạn có thể chỉ định trong cấu hình vòng đời của bạn sắp hết hạn đối tượng.

Khi một đối tượng hết hạn, Amazon S3 sẽ loại bỏ nó để loại bỏ không đồng bộ. Có thể có độ trễ giữa ngày hết hạn và ngày mà Amazon S3 xóa một đối tượng. Bạn không bị tính phí cho thời gian lưu trữ được liên kết với một đối tượng đã hết hạn.

Tuy nhiên, có vẻ như tôi sẽ phải đặt hết hạn này trong cấu hình nhóm chứ không phải cho mỗi đối tượng khi tôi tải lên/tạo chúng.

JavaScript SDK documentation cho biết rằng tôi có thể đặt tham số Expires khi tạo đối tượng, nhưng điều này có vẻ là cho tiêu đề HTTP Expires khi S3 trả về đối tượng cho các yêu cầu GET tiếp theo.

Có cách nào để đặt ngày hết hạn của đối tượng khi tạo đối tượng không?

s3.putObject({ 
    Bucket: config.s3.bucketName, 
    Key: s3Key, 
    Body: objBuffer, 
    ACL: 'public-read', 
    ContentType: 'image/jpeg', 
    StorageClass: 'REDUCED_REDUNDANCY', 
    // Some option here for setting expiration/deletion date? 
}, function() { 
    console.log(arguments); 
}); 

Trả lời

5

Bạn không thể đặt quy tắc hết hạn trên từng đối tượng riêng lẻ. Để xác định quy tắc hết hạn đối tượng, bạn phải xác định một nhóm lifecycle configuration.

Để thực hiện việc này với API node.js, hãy xem cuộc gọi putBucketLifecycle. Bạn cũng có thể xem tài liệu REST API cho số bucket lifecycle PUT operation.

+1

Tôi tự hỏi tại sao tất cả aws sdks đề cập đến tham số "Hết hạn" nếu không thể sử dụng nó. Bất kỳ lời giải thích? – hugofcampos

+4

Tham số "Hết hạn" mà bạn mô tả tham chiếu đến tiêu đề HTTP 'Hết hạn' mà bạn có thể xác định trên một đối tượng. Tiêu đề đó không ảnh hưởng đến vòng đời của đối tượng S3, nó chỉ ảnh hưởng đến thời gian khách hàng (trình duyệt, proxy, vv) giữ đối tượng đó trong bộ đệm khi nó được truy xuất từ ​​S3. – dcro

Các vấn đề liên quan