版本控制
通过媒体存储提供的版本控制,您可以在一个桶中保留多个对象版本。您必须在您的存储桶上显式启用版本控制。默认情况下,版本控制处于禁用状态。无论您是否已启用版本控制,您的存储桶中的每个对象都具有版本 ID。如果未启用版本控制,则版本 ID 值被设置为空(null)。如果已启用版本控制,则对象会被指定唯一版本 ID 值。在存储桶上启用版本控制时,该存储桶中的现有对象(如果有)不会发生更改:版本ID(空)、内容和权限保持为相同。
put_bucket_versioning 操作可以设置存储桶版本控制状态。存储桶的版本控制状态可以设置为以下的值:
- Enabled:对存储桶中的所有对象启用版本控制,之后每个添加到存储桶中的对象都会被设置一个唯一的版本 ID。
- Suspended:关闭存储桶的版本控制,之后每个添加到bucket中的对象的版本 ID会被设置为null。
容器开启版本控制功能之后,无法再关闭该功能,只能暂停。
以下代码展示如何开启版本控制:
def put_bucket_versioning(client, bucket_name)
client.put_bucket_versioning(
bucket: bucket_name,
versioning_configuration: {
status: 'Enabled'
}
)
puts 'Bucket versioning set.'
rescue StandardError => e
puts "Error putting bucket versioning: #{e.message}"
end
get_bucket_versioning 操作可以获取存储桶的版本控制状态信息。只有存储桶的拥有者才能获取到版本控制信息。如果存储桶从来没有被设置过版本控制状态,那么该存储桶不含有任何版本控制的状态信息,执行 get_bucket_versioning 操作不能获取版本控制信息的有效值。
以下代码展示如何查询版本控制信息:
def get_bucket_verisoning(client, bucket_name)
resp = client.get_bucket_versioning(
bucket: bucket_name
)
puts "Bucket verisoning status: #{resp.status}."
rescue StandardError => e
puts "Error getting bucket versioning: #{e.message}"
end