Mặc dù việc xóa một vài đối tượng trong một thùng Lưu trữ đối tượng có thể không mất nhiều thời gian, nhưng khi số lượng đối tượng lên tới hàng nghìn hoặc thậm chí hàng triệu, thời gian cần thiết để hoàn tất các thao tác xóa có thể dễ dàng trở nên không thể quản lý được. Khi xóa một lượng lớn đối tượng, tốt nhất là sử dụng chính sách vòng đời . Các chính sách này có thể được biểu diễn trong XML; sau đây là một đoạn trích (chưa hoàn chỉnh) của một hành động sẽ xóa các đối tượng sau 1 ngày:

Chính sách vòng đời được áp dụng cho một thùng. Chính sách là các tập hợp các quy tắc chi phối việc quản lý các đối tượng sau khi chúng đã cũ trong một khoảng thời gian nhất định. Ví dụ, bạn có thể tạo chính sách vòng đời để xóa các đối tượng sau mỗi ba mươi ngày hoặc một lần một tuần. Điều này hữu ích cho các trường hợp dữ liệu trong thùng trở nên lỗi thời, chẳng hạn như khi thu thập nhật ký hoạt động.
Trong hướng dẫn này
Hướng dẫn này trước tiên sẽ mô tả thời điểm các chính sách được thực thi và sau đó sẽ giải thích cách tạo và xóa các chính sách vòng đời bằng hai công cụ:
- Giao diện dòng lệnh s3cmd (CLI): Ngoài việc xóa các đối tượng, s3cmd có thể quản lý các chính sách phức tạp hơn, bao gồm xóa các phiên bản cũ của các đối tượng đã được giữ lại và các lần tải lên nhiều phần không thành công.
- Ứng dụng máy tính để bàn Cyberduck (GUI): Cyberduck không có nhiều tùy chọn chính sách, nhưng bạn có thể quản lý chúng thông qua giao diện trỏ và nhấp.
Trước khi bạn bắt đầu
- Làm quen với những kiến thức cơ bản về Lưu trữ đối tượng bằng cách xem hướng dẫn Bắt đầu với Lưu trữ đối tượng hoặc xem qua các hướng dẫn Lưu trữ đối tượng có sẵn .
- Để minh họa, bạn có thể tạo một thùng lưu trữ đối tượng với một số đối tượng mà sau này bạn sẽ xóa.
Khi các chính sách được thực thi
Chính sách vòng đời được kích hoạt bắt đầu từ nửa đêm theo giờ địa phương của cụm Lưu trữ đối tượng. Điều này có nghĩa là nếu bạn đặt chính sách vòng đời là một ngày , các đối tượng sẽ bị xóa vào nửa đêm sau khi chúng tồn tại được 24 giờ .
Một cụm được định nghĩa là tất cả các thùng được lưu trữ bởi một URL duy nhất; ví dụ: , , hoặc .us-east-1.linodeobjects.comap-south-1.linodeobjects.comeu-central-1.linodeobjects.com
Ví dụ, nếu một đối tượng được tạo lúc 5 giờ chiều ngày 1 tháng 1, thì đối tượng đó sẽ đạt đến độ tuổi 24 giờ vào lúc 5 giờ chiều ngày 2 tháng 1. Sau đó, chính sách sẽ được áp dụng cho đối tượng đó vào lúc 12 giờ đêm ngày 3 tháng 1.
Có khả năng là chính sách vòng đời sẽ không xóa tất cả các tệp trong một thùng khi chính sách vòng đời được kích hoạt lần đầu tiên. Điều này đặc biệt đúng đối với các thùng có hơn một triệu đối tượng. Trong những trường hợp như thế này, hầu hết các đối tượng sẽ bị xóa và bất kỳ đối tượng nào còn lại thường sẽ bị xóa trong lần lặp lại tiếp theo của các quy tắc của chính sách vòng đời.
Tạo và xóa chính sách vòng đời
s3cmd
s3cmd cho phép người dùng thiết lập và quản lý các chính sách vòng đời từ dòng lệnh. Trong phần này, bạn sẽ tìm thấy hướng dẫn về cách tạo và quản lý các chính sách vòng đời để xóa các đối tượng, các phiên bản trước của các đối tượng và các lần tải lên nhiều phần không thành công bằng s3cmd.
Nếu bạn chưa thiết lập s3cmd trên máy tính, hãy tham khảo hướng dẫn Sử dụng s3cmd với Object Storage .
Tạo tệp chính sách vòng đời
Trong Object Storage tương thích với S3, chính sách vòng đời được biểu diễn bằng tệp XML. Bạn có thể sử dụng trình soạn thảo văn bản ưa thích của mình để tạo tệp XML này. Hãy xem xét tệp chính sách vòng đời sau:
lifecycle_policy.xml
<LifecycleConfiguration>
<Rule>
<ID>delete-all-objects</ID>
<Filter>
<Prefix></Prefix>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>1</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Chính sách vòng đời ở trên xóa tất cả các đối tượng trong thùng sau một ngày. Mỗi tệp chính sách vòng đời cần một khối và một khối lồng nhau. Khối phải chứa và , và ít nhất một hành động, như khối. Cũng nên bao gồm một khối:LifecycleConfigurationRuleRulePrefixStatusExpirationID

Các hành động bổ sung
Các hành động khác cũng có thể được chỉ định trong một quy tắc:
NoncurrentVersionExpiration
block và con của nó, . Chúng được sử dụng để kiểm soát vòng đời của các đối tượng có nhiều phiên bản cũ hơn và chỉ nên được sử dụng với các bucket có bật phiên bản bucket . Sử dụng tùy chọn này sẽ xóa các đối tượng không phải là phiên bản mới nhất, hiện tại nhất. Dưới đây là ví dụ về cách sử dụng :NoncurrentDays
NoncurrentVersionExpiration
<LifecycleConfiguration>
<Rule>
<ID>delete-prior-versions</ID>
<Filter><Prefix></Prefix></Filter>
<Status>Enabled</Status>
<NoncurrentVersionExpiration>
<NoncurrentDays>1</NoncurrentDays>
</NoncurrentVersionExpiration>
</Rule>
</LifecycleConfiguration>
Nếu một đối tượng có phiên bản bị xóa trong thùng chứa có chính sách, thì chỉ DeleteMarker cho đối tượng đó (không phải chính đối tượng đó) sẽ được giữ lại sau khi số ngày do chỉ định đã trôi qua kể từ khi đối tượng bị xóa.NoncurrentVersionExpirationNoncurrentDays
AbortIncompleteMultipartUpload
, và con của nó, . Chúng hoạt động tương tự như , nhưng thay vì xóa các phiên bản trước của đối tượng, chúng sẽ xóa các lần tải lên nhiều phần không thành công. Sau đây sẽ xóa các lần tải lên nhiều phần không thành công ba ngày sau khi chúng được khởi tạo:DaysAfterInitiationNoncurrentVersionExpiration
<LifecycleConfiguration>
<Rule>
<ID>delete-incomplete-multipart-uploads</ID>
<Filter><Prefix></Prefix></Filter>
<Status>Enabled</Status>
<AbortIncompleteMultipartUpload>
<DaysAfterInitiation>3</DaysAfterInitiation>
</AbortIncompleteMultipartUpload>
</Rule>
</LifecycleConfiguration>
Về việc tải lên nhiều phần
Các đối tượng là một phần của các lần tải lên nhiều phần không thành công (cơ chế mà các tệp lớn được tải lên) sẽ nằm trong các thùng Lưu trữ đối tượng, được tính vào tổng chi phí Lưu trữ đối tượng của bạn. s3cmd sẽ tự động khởi tạo một lần tải lên nhiều phần khi tệp lớn hơn 15MB. Chính sách vòng đời là một cách tuyệt vời để xóa các lần tải lên nhiều phần cũ.
Object Storage không hỗ trợ chính sách này.NewerNoncurrentVersions
Nhiều hành động trong một quy tắc
Có thể chỉ định nhiều hơn một hành động trong một quy tắc duy nhất. Ví dụ, bạn có thể muốn vừa hết hạn phiên bản hiện tại của một đối tượng sau một số ngày nhất định vừa xóa các phiên bản cũ của đối tượng đó sau một khoảng thời gian khác. Chính sách sau sẽ xóa phiên bản hiện tại của một đối tượng sau 10 ngày và xóa mọi phiên bản không hiện tại của đối tượng sau 3 ngày kể từ khi chúng bị hạ cấp khỏi phiên bản hiện tại:
<LifecycleConfiguration>
<Rule>
<ID>delete-prior-versions</ID>
<Filter><Prefix></Prefix></Filter>
<Status>Enabled</Status>
<Expiration>
<Days>10</Days>
</Expiration>
<NoncurrentVersionExpiration>
<NoncurrentDays>3</NoncurrentDays>
</NoncurrentVersionExpiration>
</Rule>
</LifecycleConfiguration>
📘
Xin nhắc lại, nếu một đối tượng có phiên bản bị xóa, chỉ phiên bản hiện tại của đối tượng sẽ bị xóa và tất cả các phiên bản cũ hơn sẽ được giữ nguyên trong thùng. Vì lý do này, quy tắc trên có tác dụng xóa bất kỳ đối tượng nào nếu chúng không được cập nhật trong vòng 10 ngày, sau đó xóa các phiên bản đối tượng còn lại sau 3 ngày.
Nhiều quy tắc
Tệp chính sách vòng đời chỉ có thể chứa một khối, nhưng khối có thể chứa nhiều hơn một khối . Ví dụ, nếu bạn có một thùng chứa cả nhật ký lỗi và nhật ký đầu ra chung, bạn có thể đặt chính sách vòng đời lưu nhật ký lỗi trong một tuần nhưng xóa nhật ký chuẩn vào cuối mỗi ngày:LifecycleConfigurationLifecycleConfigurationRule
<LifecycleConfiguration>
<Rule>
<ID>delete-error-logs</ID>
<Filter><Prefix>error</Prefix></Filter>
<Status>Enabled</Status>
<Expiration>
<Days>7</Days>
</Expiration>
</Rule>
<Rule>
<ID>delete-standard-logs</ID>
<Prefix>logs</Prefix>
<Status>Enabled</Status>
<Expiration>
<Days>1</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Tải chính sách vòng đời lên một thùng
Để áp dụng chính sách vòng đời cho một bucket có s3cmd, bạn cần tải tệp vòng đời lên bucket. Thao tác này không phải là thao tác PUT thông thường. Thay vào đó, lệnh cần sử dụng là , theo sau là tên của tệp chính sách vòng đời và tên của bucket. Trong ví dụ bên dưới, hãy thay example-bucket bằng tên bucket của bạn.setlifecycle
s3cmd setlifecycle lifecycle_policy.xml s3://example-bucket
Bạn sẽ thấy kết quả như sau:
s3://example-bucket/: Lifecycle Policy updated
Sau khi chính sách vòng đời được tải lên, các đối tượng sẽ bị xóa theo chính sách đã đặt ra
Xem chính sách vòng đời của thùng
Để xem chính sách vòng đời sau khi đã được tải lên bucket, hãy sử dụng lệnh. Thay example-bucket bằng tên bucket của bạn:getlifecycle
s3cmd getlifecycle s3://example-bucket
Bạn sẽ thấy nội dung của tệp XML đã được tải lên:
<?xml version="1.0" ?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<ID>delete-all</ID>
<Prefix/>
<Status>Enabled</Status>
<Expiration>
<Days>1</Days>
</Expiration>
</Rule>
</LifecycleConfiguration>
Xóa chính sách vòng đời
Để xóa chính sách vòng đời mà bạn đã tải lên, vô hiệu hóa chính sách đó, hãy sử dụng lệnh. Thay example-bucket bằng tên bucket của bạn:dellifecycle
s3cmd dellifecycle s3://example-bucket
Bạn sẽ thấy xác nhận rằng chính sách vòng đời đã bị xóa:
s3://example-bucket: Lifecycle Policy deleted
Vịt mạng
Cyberduck cho phép kiểm soát ít hơn đối với các chính sách vòng đời so với CLI s3cmd. Cụ thể, Cyberduck không cho phép bạn thiết lập chính sách vòng đời để xóa các phiên bản lỗi thời của các đối tượng được lưu trữ trong các thùng chứa nơi bật tính năng quản lý phiên bản , cũng không cho phép bạn xóa các bản tải lên nhiều phần. Cyberduck cũng giới hạn độ dài của chính sách vòng đời trong các khoảng thời gian thường dùng. Dưới đây, bạn sẽ tìm hiểu cách thiết lập chính sách vòng đời bằng Cyberduck.
Nếu bạn chưa cài đặt Cyberduck trên máy tính, hãy tham khảo hướng dẫn Sử dụng Cyberduck với Object Storage .
Kích hoạt chính sách vòng đời
- Nhấp chuột phải hoặc giữ phím Control + nhấp vào bucket mà bạn muốn đặt chính sách vòng đời. Thao tác này sẽ mở menu thông tin bucket.
- Nhấp vào tab S3 để mở cài đặt thùng S3.

- Nhấp vào hộp kiểm có nhãn Xóa tệp và chọn khoảng thời gian từ menu thả xuống bên dưới.

Điều này sẽ kích hoạt chính sách vòng đời và các đối tượng trong thùng sẽ bị xóa sau thời gian đã chỉ định.
Vô hiệu hóa chính sách vòng đời
Để vô hiệu hóa chính sách vòng đời, hãy bỏ chọn hộp có tên Xóa tệp mà bạn đã chọn ở phần trước.
Nguồn: https://techdocs.akamai.com/cloud-computing/docs/lifecycle-policies