桶相关接口 功能说明 通过媒体存储提供的版本控制,您可以在一个桶中保留多个对象版本。例如,image.jpg(版本1)和image.jpg(版本2)。如果您希望防止自己意外覆盖和删除版本,或存档对象,以便您可以检索早期版本的对象,您可以开启版本控制功能。 您必须在您的存储桶上显式启用版本控制。默认情况下,版本控制处于禁用状态。无论您是否已启用版本控制,您的存储桶中的每个对象都具有版本 ID。如果未启用版本控制,则版本 ID 值被设置为空。如果已启用版本控制,则对象会被指定唯一版本 ID 值。在存储桶上启用版本控制时,该存储桶中的现有对象(如果有)不会发生更改:版本ID(空)、内容和权限保持为相同。 在开启版本控制功能后,上传同名对象将不再删除旧对象,而是添加一个新的对象。普通的删除操作也不会将对象彻底删除,而是添加一个 Delete Marker 作为标识。容器开启版本控制功能之后,无法再关闭该功能,只能暂停。您可以使用 PutBucketVersioning接口开启和暂停版本控制。 代码示例 以下代码展示如何开启版本控制 cpp bool S3Demo::PutBucketVersioning() { Aws::S3::Model::VersioningConfiguration config; config.SetStatus(Aws::S3::Model::BucketVersioningStatus::Enabled); Aws::S3::Model::PutBucketVersioningRequest request; request.SetBucket(" "); request.SetVersioningConfiguration(config); Aws::S3::Model::PutBucketVersioningOutcome outcome s3client>PutBucketVersioning(request); if (outcome.IsSuccess()) { std::cout "); request.SetVersioningConfiguration(config); Aws::S3::Model::PutBucketVersioningOutcome outcome s3client>PutBucketVersioning(request); if (outcome.IsSuccess()) { std::cout << "PutBucketVersioning success"; return true; } else { Aws::S3::S3Error err outcome.GetError(); std::cout << "Error: PutBPutBucketVersioningucketAcl: " << (int)err.GetResponseCode() << ", Message:" << err.GetMessage() << std::endl; return false; } }
来自: