设置对象标签

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不存在。