设置版本控制
PutBucketVersioning操作可以设置bucket版本控制状态。bucket的版本控制状态可以设置为以下的值:
- Enabled:对bucket中的所有对象启用版本控制,之后每个添加到bucket中的对象都会被设置一个唯一的version ID。
- Suspended:关闭bucket的版本控制,之后每个添加到bucket中的对象的version ID会被设置为null。
代码示例:
using System;
using System.Threading.Tasks;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;
namespace DotNetSDK.BucketOperation
{
public class PutBucketVersioningExample
{
public static async Task PutBucketVersioning()
{
var accessKey = "YOUR_ACCESS_KEY";
var secretKey = "YOUR_SECRET_KEY";
var endpoint = "YOUR_ENDPOINT";
var bucketName = "EXAMPLE_BUCKET";
try
{
var credentials = new BasicAWSCredentials(accessKey, secretKey);
var conf = new AmazonS3Config
{
ServiceURL = endpoint
};
var s3Client = new AmazonS3Client(credentials, conf);
var putBucketVersioningRequest = new PutBucketVersioningRequest()
{
BucketName = bucketName,
VersioningConfig = new S3BucketVersioningConfig()
{
Status = VersionStatus.Enabled
}
};
var result = await s3Client.PutBucketVersioningAsync(putBucketVersioningRequest);
if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine("fail to put versioning config to bucket {0}, HttpStatusCode:{1}, ErrorCode:{2}.", bucketName, (int) result.HttpStatusCode, result.HttpStatusCode);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
PutBucketVersioningRequest可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
BucketName | string | bucket的名称。 | 是 |
VersioningConfig | S3BucketVersioningConfig | 封装了设置版本控制状态的参数。 | 是 |
响应结果:
HTTP状态码 | 响应码 | 描述 |
---|---|---|
200 | OK | 操作成功。如果操作指定的bucket不存在也返回200状态码。 |
403 | Forbidden | 用户没有权限执行操作。 |