OSS不支持直接对文件(Object)进行重命名。如果您需要在同一个Bucket内对Object进行重命名,您可以通过CopyObject接口将源Object拷贝至目标Object,然后通过DeleteObject接口删除源Object。
注意事项
示例代码
以下代码用于将examplebucket下的srcobject.txt重命名为destobject.txt。
package main
import (
"fmt"
"github.com/aliyun/aliyun-oss-go-sdk/oss"
"os"
)
func handleError(err error) {
fmt.Println("Error:", err)
os.Exit(-1)
}
func main() {
// 创建OSSClient实例。
// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret")
if err != nil {
handleError(err)
}
// 填写Bucket名称。
bucket, err := client.Bucket("examplebucket")
if err != nil {
handleError(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 {
handleError(err)
}
// 删除srcobject.txt。
err = bucket.DeleteObject(srcObject)
if err != nil {
handleError(err)
}
fmt.Print(srcObject+" has renamed "+destObject)
}
相关文档
关于重命名文件涉及的API接口说明,请分别参见CopyObject和DeleteObject。