设置对象标签
PutObjectTagging操作可以为对象设置标签,标签是一个键值对,每个对象最多可以有10个标签。bucket的所有者默认拥有给bucket中的对象设置标签的权限,并且可以将权限授予其他用户。
代码示例:
using System;
using System.Threading.Tasks;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;
namespace DotNetSDK.ObjectOperation
{
public class PutObjectTaggingExample
{
public static async Task PutObjectTagging()
{
var accessKey = "YOUR_ACCESS_KEY";
var secretKey = "YOUR_SECRET_KEY";
var endpoint = "YOUR_ENDPOINT";
var bucketName = "EXAMPLE_BUCKET";
var key = "EXAMPLE_KEY";
try
{
var credentials = new BasicAWSCredentials(accessKey, secretKey);
var conf = new AmazonS3Config
{
ServiceURL = endpoint
};
var s3Client = new AmazonS3Client(credentials, conf);
var putObjectTaggingRequest = new PutObjectTaggingRequest()
{
BucketName = bucketName,
Key = key,
};
putObjectTaggingRequest.Tagging.TagSet.Add(new Tag()
{
Key = "key1",
Value = "value1"
});
putObjectTaggingRequest.Tagging.TagSet.Add(new Tag()
{
Key = "key2",
Value = "value2"
});
var result = await s3Client.PutObjectTaggingAsync(putObjectTaggingRequest);
if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine("fail to put tags of object {0}, HttpStatusCode:{1}, ErrorCode:{2}.", key, (int) result.HttpStatusCode, result.HttpStatusCode);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
PutObjectTagging可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
BucketName | string | 设置标签信息的对象所在bucket的名称。 | 是 |
Key | string | 设置标签信息的对象的key。 | 是 |
VersionId | string | 设置标签信息的对象的versionId。 | 否 |
响应结果:
HTTP状态码 | 响应码 | 描述 |
---|---|---|
200 | OK | 操作成功。 |
400 | BadRequest | 请求中设置bucket的名字不合法(InvalidBucketName)或者对象的名字不合法(InvalidObjectName),或者设置标签数量太多或者标签内容长度超出限制(InvalidTag),或者设置标签的内容非法,例如key存在重复的情况(MalformedXML)。 |
403 | Forbidden | 用户没有权限执行操作。 |
404 | NotFound | 请求参数中设置的bucket不存在,请求参数中设置的对象key或者版本Id不存在。 |