2012-01-24 32 views
43

Có các giải pháp hiện có để xóa bất kỳ tệp nào cũ hơn x ngày không?Làm thế nào để xóa hoặc xóa các tập tin cũ trên S3?

+1

Hiện tại tôi sẽ sử dụng giải pháp này: 's3cmd ls s3: // mybucket/mypath/| ruby ​​-rdate -ne 'ngày, giờ, kích thước, uri = $ _. days = (Time.now - Date.parse (ngày) .to_time)/60/60/24; đặt uri nếu ngày> 2 '| xargs s3cmd del' – Erik

Trả lời

62

Gần đây, Amazon đã giới thiệu object expiration.

Amazon S3 công bố đối tượng hết hạn

Amazon S3 công bố một Hết hạn tính năng, đối tượng mới cho phép bạn lên lịch việc xóa đối tượng của bạn sau một khoảng thời gian xác định trước. Sử dụng hết hạn đối tượng để lên lịch định kỳ loại bỏ các đối tượng loại bỏ sự cần thiết cho bạn để xác định các đối tượng bị xóa và gửi yêu cầu xóa tới Amazon S3.

Bạn có thể xác định quy tắc hết hạn đối tượng cho một nhóm đối tượng trong nhóm của bạn. Mỗi quy tắc hết hạn đối tượng cho phép bạn chỉ định tiền tố và thời hạn hết hạn trong ngày. Trường tiền tố (ví dụ: logs/) xác định (các) đối tượng theo quy tắc hết hạn và khoảng thời gian hết hạn chỉ định số ngày kể từ ngày tạo (tức là tuổi) sau khi loại bỏ (các) đối tượng. Khi các đối tượng đã qua ngày hết hạn, chúng sẽ được xếp hàng đợi để xóa. Bạn sẽ không bị tính phí để lưu trữ cho các đối tượng vào hoặc sau ngày hết hạn của chúng.

+1

Tuyệt vời, cảm ơn bạn! – Erik

+0

Đó là một công cụ khá cùn được cung cấp bởi Amazon; Nó không những gì nó nói trên tin! Nếu bạn cần kiểm soát tốt hơn về cách xóa được thực hiện, bạn sẽ phải sử dụng phương thức DELETE cũ. Tùy chọn khác là có tối đa 1000 quy tắc hết hạn đối tượng khác nhau (và 1000 tiền tố khác nhau); bạn vẫn bị giới hạn ở 1000. –

+4

Thao tác này sẽ không xóa 'tệp cũ đã có'. Nó có hiệu lực từ khi bạn tạo ra nó. – Harshdeep

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