最近更新时间:2023-04-06 10:13:47
KS3支持使用对象标签(Object Tagging)对存储的对象(Object)进行分类,您可以针对指定标签的Object设置生命周期规则。
对象标签使用一组键值对(Key-Value)标记对象,您可以在上传文件时添加标签,也可以为现有文件添加标签。
注意:每个对象最多添加10个标签。
Key命名规则:
支持大小写字母、数字、空格和符号 + - = . _ : /
1-128字节,区分大小写,不能以空格开头或结尾,不容许为空
不允许设置系统保留字段,ksc:与kss:开头
value设置规则:
支持大小写字母、数字、空格和符号 + - = . _ : /
1-256字节,区分大小写,不能以空格开头或结尾
只有Bucket拥有者和授权用户拥有读写对象标签的权限。
跨区域复制时,对象标签也会复制到目的端。
以下代码用于设置对象标签:
package ks3test
import (
"bufio"
"bytes"
"github.com/ks3sdklib/aws-sdk-go/aws/awserr"
"github.com/ks3sdklib/aws-sdk-go/aws/awsutil"
"net/url"
"strconv"
"strings"
"testing"
"time"
// "io"
"fmt"
"github.com/ks3sdklib/aws-sdk-go/aws"
"github.com/ks3sdklib/aws-sdk-go/aws/credentials"
"github.com/ks3sdklib/aws-sdk-go/service/s3"
"net/http"
"os"
)
var bucket = string("yourbucket")
var key = string("yourkey")
var key_encode = string("yourkey")
var key_copy = string("yourkey")
var content = string("content")
var prefix = "test/" //目录名称
// 金山云主账号 AccessKey 拥有所有API的访问权限,风险很高。
// 强烈建议您创建并使用子账号账号进行 API 访问或日常运维,请登录 https://uc.console.ksyun.com/pro/iam/#/user/list 创建子账号。
// 通过指定 host(Endpoint),您可以在指定的地域创建新的存储空间。
var cre = credentials.NewStaticCredentials("ak", "sk", "") //online
var svc = s3.New(&aws.Config{
//Region 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Region: "BEIJING",
Credentials: cre,
//Endpoint 可参考 [https://docs.ksyun.com/documents/6761](https://docs.ksyun.com/documents/6761)
Endpoint: "ks3-cn-beijing.ksyuncs.com",
DisableSSL: true, //是否禁用https
LogLevel: 1, //是否开启日志,0为关闭日志,1为开启日志
LogHTTPBody: true, //是否把HTTP请求body打入日志
S3ForcePathStyle: true,
Logger: nil, //打日志的位置
})
//设置对象Tag
func PutTag(svc *s3.S3) {
tagkey := "name"
tagval := "yz"
tagkey2 := "sex"
tagval2 := "female"
objTagging := s3.Tagging{
TagSet: []*s3.Tag{&s3.Tag{
Key: aws.String(tagkey),
Value: aws.String(tagval),
}, &s3.Tag{
Key: aws.String(tagkey2),
Value: aws.String(tagval2),
},
},
}
params := &s3.PutObjectTaggingInput{
Bucket: aws.String(bucketname),
Key: aws.String(key),
Tagging: &objTagging,
}
resp, err := client.PutObjectTagging(params)
if err != nil {
if awsErr, ok := err.(awserr.Error); ok {
fmt.Println(awsErr.Code(), awsErr.Message(), awsErr.OrigErr())
if reqErr, ok := err.(awserr.RequestFailure); ok {
fmt.Println(reqErr.Code(), reqErr.Message(), reqErr.StatusCode(), reqErr.RequestID())
}
} else {
fmt.Println(err.Error())
}
}
fmt.Println("结果:\n", awsutil.StringValue(resp))
}
- 对象标签更多信息,请参见对象标签。
- 设置对象标签的更多详情,请参见 Put Object Tagging。
文档内容是否对您有帮助?
评价建议不能为空
非常感谢您的反馈,我们会继续努力做到更好!