Lập phiên bản trong Bộ lưu trữ đối tượng (còn gọi là lập phiên bản nhóm, lập phiên bản đối tượng và lập phiên bản S3) là một phương pháp giữ lại các phiên bản lịch sử của tệp/đối tượng. Khi tính năng này được bật, các đối tượng sẽ không bị ghi đè hoặc xóa. Thay vào đó, phiên bản hiện tại mới của một đối tượng được lưu trữ cùng với mỗi phiên bản cũ hơn. Trong trường hợp cần khôi phục dữ liệu cũ, bạn có thể khôi phục/truy xuất các phiên bản trước đó của từng đối tượng.

Điều này hoạt động bằng cách tự động gán ID phiên bản cho từng đối tượng. Khi các phiên bản mới được tải lên, chúng sẽ nhận được ID phiên bản mới và được lưu trữ cùng với các phiên bản cũ hơn. Khi xem hoặc truy xuất các đối tượng, phiên bản mới nhất của đối tượng sẽ được trả về trừ khi ID phiên bản đã được chỉ định trong yêu cầu. Nếu bạn xóa một đối tượng đã bật phiên bản nhóm, dấu xóa sẽ được chèn vào nhóm để báo cáo rằng đối tượng đã bị xóa nhưng nhóm sẽ giữ lại tất cả các phiên bản trước đó của đối tượng.

Mọi phiên bản của một đối tượng đều được tính vào hạn mức bộ nhớ phải thanh toán hàng tháng. Mặc dù việc lưu một vài bản sửa đổi có lẽ không phải là điều đáng lo ngại, nhưng các nhóm được kiểm soát phiên bản lớn với hàng nghìn đối tượng sẽ thấy nhu cầu về không gian lưu trữ tăng lên đáng kể và cần được theo dõi cẩn thận.

 dịch vụ Lưu trữ đối tượng

Mặc dù việc lập phiên bản được hỗ trợ nguyên bản trong dịch vụ Lưu trữ đối tượng của chúng tôi, nhưng không có công cụ bên thứ nhất nào của chúng tôi (chẳng hạn như Trình quản lý đám mây, Linode CLI hoặc API Linode) có thể quản lý tính năng này. Hiện tại, bạn chỉ có thể bật, tắt và quản lý phiên bản đối tượng thông qua các công cụ của bên thứ ba như Cyberduck và AWS CLI.

Bật phiên bản

Phiên bản được kích hoạt ở cấp độ nhóm. Điều này có nghĩa là mọi đối tượng trong một nhóm sẽ được tạo phiên bản chứ không chỉ một đối tượng.

Cyberduck

  • Xem lại hướng dẫn Sử dụng Cyberduck với Bộ lưu trữ đối tượng để biết hướng dẫn cài đặt Cyberduck, kết nối với cụm Bộ lưu trữ đối tượng và xem bộ chứa của bạn.
  • Nhấp chuột phải vào nhóm mà bạn muốn bật lập phiên bản, chọn Thông tin và điều hướng đến tab S3
  • Xác định vị trí phần Phiên bản và chọn hộp kiểm Phiên bản nhóm để bật nó.

AWS CLI

Cài đặt và đặt cấu hình AWS CLI để hoạt động với tài khoản Lưu trữ đối tượng của bạn. Xem hướng dẫn AWS CLI.

Bật lập phiên bản nhóm bằng lệnh put-bucket-versioning, thay thế [cluster-url] bằng URL cụm tương ứng với trung tâm dữ liệu bạn đang sử dụng (xem URL cụm (điểm cuối S3)) và [nhãn nhóm] bằng nhãn /tên thùng của bạn.

aws s3api put-bucket-versioning --endpoint=[cluster-url] --bucket=[bucket-label] --versioning-configuration Status=Enabled

Để xác minh rằng phiên bản đã được bật, hãy chạy lệnh get-bucket-versioning, thay thế lại [cluster-url] và [bucket-label] cho phù hợp.

aws s3api get-bucket-versioning --endpoint=[cluster-url] --bucket=[bucket-label]

Đầu ra của lệnh đó sẽ hiển thị Trạng thái đã bật:

{
"Status": "Enabled",
"MFADelete": "Disabled"
}

Phiên bản thử nghiệm

  • Vì tính năng lập phiên bản đã được bật, bạn có thể kiểm tra tính năng này bằng cách tải lên tệp mẫu rồi thay thế tệp đó.
  • Tạo một tệp văn bản (được gọi là example-file.txt hoặc tương tự) trên máy tính cục bộ của bạn với nội dung sau:
This is version 1.
  • Bây giờ, hãy tải tệp đó lên thông qua bất kỳ công cụ nào bạn muốn sử dụng, bao gồm Cloud Manager, Cyberduck, S3cmd hoặc AWS CLI.
  • Trên máy cục bộ của bạn, hãy chỉnh sửa cùng một tệp văn bản đó. Trong ví dụ của chúng tôi, chúng tôi sẽ chỉnh sửa nó để sử dụng các nội dung sau:

Xem các đối tượng được phiên bản

Cyberduck

Mở menu Xem và nhấp vào Hiển thị tệp ẩn. Các phiên bản trước của tệp sẽ được hiển thị bằng màu xám. Bấm vào nút Làm mới nếu các phiên bản trước đó không tự động xuất hiện.

AWS CLI

Chạy lệnh list-object-versions, thay thế [cluster-url] bằng URL cụm tương ứng với trung tâm dữ liệu bạn đang sử dụng (xem URL cụm (điểm cuối S3)), [nhãn nhóm] bằng nhãn/tên của nhóm của bạn và [đối tượng] bằng khóa đối tượng (đường dẫn đầy đủ và tên tệp) của đối tượng. Nếu bạn bỏ qua tùy chọn –prefix=[object], lệnh sẽ xuất ra tất cả các đối tượng.

aws s3api list-object-versions --endpoint=[cluster-url] --bucket=[bucket-label] --prefix=[object]

Nếu chạy lệnh này với tùy chọn tiền tố được đặt thành tệp example-file.txt có hai phiên bản, thì kết quả đầu ra sẽ tương tự như sau:

{
"Versions": [
{
"ETag": "\"8f8d4ab37dcdd3728feecd08c7601112\"",
"Size": 14,
"StorageClass": "STANDARD",
"Key": "example-file.txt",
"VersionId": "wPI0FSbJRWD4xIvr7y8LxtEhDhm0ntO",
"IsLatest": true,
"LastModified": "2022-03-11T12:37:19.722000+00:00",
"Owner": {
"DisplayName": "a0000000-000a-0000-0000-00d0ff0f0000",
"ID": "a0000000-000a-0000-0000-00d0ff0f0000"
}
},
{
"ETag": "\"764569e58f53ea8b6404f6fa7fc0247f\"",
"Size": 12,
"StorageClass": "STANDARD",
"Key": "example-file.txt",
"VersionId": "null",
"IsLatest": false,
"LastModified": "2022-02-11T17:30:24.612000+00:00",
"Owner": {
"DisplayName": "a0000000-000a-0000-0000-00d0ff0f0000",
"ID": "a0000000-000a-0000-0000-00d0ff0f0000"
}
}
]
}

Mỗi phiên bản được liệt kê cùng với siêu dữ liệu đối tượng riêng lẻ.

Tải xuống và khôi phục phiên bản trước

Cyberduck

Để tải xuống phiên bản trước, bạn có thể nhấp chuột phải vào phiên bản bạn muốn lưu và chọn Tải xuống. Ngoài ra, bạn có thể kéo và thả tệp vào màn hình nền hoặc cửa sổ trình khám phá tệp.

Để khôi phục phiên bản đó của tệp, hãy tải tệp lên lại. Một phương pháp khác là xóa tất cả các phiên bản mới hơn của tệp.

AWS CLI

Để tải xuống phiên bản trước của một đối tượng, hãy chạy lệnh get-object, thay thế [cluster-url] bằng URL cụm tương ứng với trung tâm dữ liệu bạn đang sử dụng (xem URL cụm (điểm cuối S3)), [nhãn nhóm ] với nhãn/tên của nhóm của bạn, [đối tượng] với khóa đối tượng (đường dẫn đầy đủ và tên tệp) của đối tượng, [version-id] với giá trị VersionId của bất kỳ đối tượng nào bạn muốn tải xuống, [tệp đầu ra] với bất cứ điều gì bạn muốn gọi tệp trên hệ thống cục bộ của bạn.

aws s3api get-object --endpoint=[cluster-url] --bucket=[bucket-label] --key=[object] --version-id=[version-id] [output-file]

Bạn sẽ thấy đầu ra như sau:

{
"AcceptRanges": "bytes",
"LastModified": "2022-03-11T12:37:19+00:00",
"ContentLength": 14,
"ETag": "\"8f8d4ab37dcdd3728feecd08c7601112\"",
"VersionId": "wPI0FSbJRWD4xIvr7y8LxtEhDhm0ntO",
"ContentType": "text/plain",
"Metadata": {
"mtime": "1644590299284",
"storage-class": "STANDARD"
},
"StorageClass": "STANDARD"
}

Khôi phục lại phiên bản này, bạn có thể upload lại. Ngoài ra, bạn có thể xóa tất cả các phiên bản mới hơn.

Nguồn: https://techdocs.akamai.com/cloud-computing/docs/versioning-retain-object-version-history