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);
});
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
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