您可以通过 TOS Go SDK 的 SetObjectExpires 接口设置已上传对象的过期时间,过期后,TOS 将自动删除该对象。
tos:SetObjectExpires 权限,具体操作,请参见权限配置指南。package main import ( "context" "fmt" "os" "github.com/volcengine/ve-tos-golang-sdk/v2/tos" ) func checkErr(err error) { if err != nil { if serverErr, ok := err.(*tos.TosServerError); ok { fmt.Println("Error:", serverErr.Error()) fmt.Println("Request ID:", serverErr.RequestID) fmt.Println("Response Status Code:", serverErr.StatusCode) fmt.Println("Response Header:", serverErr.Header) fmt.Println("Response Err Code:", serverErr.Code) fmt.Println("Response Err Msg:", serverErr.Message) } else { fmt.Println("Error:", err) } panic(err) } } func main() { var ( accessKey = os.Getenv("TOS_ACCESS_KEY") secretKey = os.Getenv("TOS_SECRET_KEY") // Bucket 对于的 Endpoint,以华北2(北京)为例:https://tos-cn-beijing.volces.com endpoint = "https://tos-cn-beijing.volces.com" region = "cn-beijing" // 填写 BucketName bucketName = "*** Provide your bucket name ***" // 设置 example_dir 目录下的 example.txt 文件的过期时间 objectKey = "example_dir/example.txt" ctx = context.Background() ) // 初始化客户端 client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey))) checkErr(err) // 设置对象过期时间 output, err := client.SetObjectExpires(ctx, &tos.SetObjectExpiresInput{ Bucket: bucketName, Key: objectKey, // 取值为正整数或0;为0时表示永不过期。 ObjectExpires: 1, }) checkErr(err) fmt.Println("SetObjectExpires Request ID:", output.RequestID) }
关于设置对象级过期时间的 API 文档,请参见 SetObjectExpires。