OSS不支持直接对文件(Object)进行重命名。如果您需要在同一个Bucket内对Object进行重命名,您可以通过CopyObject接口将源Object拷贝至目标Object,然后通过DeleteObject接口删除源Object。
注意事项
示例代码
以下代码用于将examplebucket下的srcobject.txt重命名为destobject.txt。
package main
import (
"fmt"
"log"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
)
func main() {
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
provider, err := oss.NewEnvironmentVariableCredentialsProvider()
if err != nil {
log.Fatalf("Failed to create credentials provider: %v", err)
}
// 创建OSSClient实例。
// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
client, err := oss.New("yourEndpoint", "", "", oss.SetCredentialsProvider(&provider))
if err != nil {
log.Fatalf("Failed to create OSS client: %v", err)
}
// 填写Bucket名称。
bucketName := "examplebucket"
bucket, err := client.Bucket(bucketName)
if err != nil {
log.Fatalf("Failed to get bucket '%s': %v", bucketName, err)
}
// 源Object的完整路径,完整路径中不能包含Bucket名称。
srcObject := "srcobject.txt"
// 目标Object的完整路径,完整路径中不能包含Bucket名称。
destObject := "destobject.txt"
// 将examplebucket下的srcobject.txt拷贝至同一Bucket下的destobject.txt。
_, err = bucket.CopyObject(srcObject, destObject)
if err != nil {
log.Fatalf("Failed to copy object '%s' to '%s': %v", srcObject, destObject, err)
}
// 删除srcobject.txt。
err = bucket.DeleteObject(srcObject)
if err != nil {
log.Fatalf("Failed to delete source object '%s': %v", srcObject, err)
}
fmt.Printf("%s has been renamed to %s\n", srcObject, destObject)
}
相关文档
关于重命名文件涉及的API接口说明,请分别参见CopyObject和DeleteObject。
文档内容是否对您有帮助?