You need to enable JavaScript to run this app.
导航
重命名对象(Go SDK)
最近更新时间:2024.06.20 20:04:18首次发布时间:2024.04.26 18:00:05

TOS 支持在桶内 Rename 单个对象的 Key,不拷贝和删除数据。

注意事项

  • 重命名对象前,您需要先开启重命名功能。
  • 仅支持重命名开启 RenameObject 后新上传的对象,不支持重命名开启该功能前的存量对象。
  • 同一个对象不支持并发重命名。
  • 重命名对象元数据上的所有信息都与源对象一致。更多信息,请参见使用 RenameObject

示例代码

以下代码用于对象重命名功能。

package main

import (
    "context"
    "fmt"
    "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 ***"
       key        = "old-key"
       newKey     = "new-key"
       ctx        = context.Background()
    )
    // 初始化客户端
    client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))
    checkErr(err)
    // 重命名对象
    output, err := client.RenameObject(ctx, &tos.RenameObjectInput{
       Bucket: bucketName,
       Key:    key,
       NewKey: newKey,
    })
    checkErr(err)
    fmt.Println("RenameObject Request ID:", output.RequestID)
}

相关文档

关于 RenameObject 的 API 文档,请参见 RenameObject