获取对象标签
GetObjectTagging操作可以查询对象的标签信息,标签是一个键值对,每个对象最多可以有10个标签。bucket的所有者默认拥有查询bucket中对象的标签的权限,并且可以将权限授予其他用户。
代码示例:
using System;
using System.Threading.Tasks;
using Amazon.Runtime;
using Amazon.S3;
using Amazon.S3.Model;
namespace DotNetSDK.ObjectOperation
{
public class GetObjectTaggingExample
{
public static async Task GetObjectTagging()
{
var accessKey = "YOUR_ACCESS_KEY";
var secretKey = "YOUR_SECRET_KEY";
var endpoint = "YOUR_ENDPOINT";
var bucketName = "EXAMPLE_BUCKET";
var key = "EXAMPLE_KEY";
var credentials = new BasicAWSCredentials(accessKey, secretKey);
try
{
var conf = new AmazonS3Config
{
ServiceURL = endpoint
};
var s3Client = new AmazonS3Client(credentials, conf);
var getObjectTaggingRequest = new GetObjectTaggingRequest()
{
BucketName = bucketName,
Key = key
};
var result = await s3Client.GetObjectTaggingAsync(getObjectTaggingRequest);
if (result.HttpStatusCode != System.Net.HttpStatusCode.OK)
{
Console.WriteLine("fail to get tags of object {0}, HttpStatusCode:{1}, ErrorCode:{2}.", key, (int) result.HttpStatusCode, result.HttpStatusCode);
return;
}
Console.WriteLine("the tags of {0} are: ", key);
foreach (var tag in result.Tagging)
{
Console.WriteLine("key={0}, value={1}", tag.Key, tag.Value);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}
}
GetObjectTaggingRequest可设置的参数如下:
参数 | 类型 | 说明 | 是否必要 |
---|---|---|---|
BucketName | string | 执行本操作的bucket名称。 | 是 |
Key | string | 想获取标签信息的对象的key。 | 是 |
VersionId | string | 想获取标签信息的对象的版本Id。 | 否 |
GetObjectTagging返回的结果如下:
参数 | 类型 | 说明 |
---|---|---|
Tagging | List<Tag> | 对象标签信息数组,数组中的每一项包含了标签Key和Value的值。 |
响应结果:
HTTP状态 | 响应码 | 描述 |
---|---|---|
200 | OK | 操作成功。 |
400 | BadRequest | 请求中设置bucket的名字不合法或者对象的名字不合法。 |
403 | Forbidden | 用户没有权限执行操作。 |
404 | NotFound | 请求参数中设置的bucket不存在,请求参数中设置的对象key或者版本Id不存在。 |