OSS不支持直接对文件(Object)进行重命名。如果您需要在同一个Bucket内对Object进行重命名,您可以通过CopyObject接口将源Object拷贝至目标Object,然后通过DeleteObject接口删除源Object。
注意事项
示例代码
以下代码用于将examplebucket下的srcobject.txt重命名为destobject.txt。
# -*- coding: utf-8 -*-
import oss2
# 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
auth = oss2.Auth('yourAccessKeyId', 'yourAccessKeySecret')
# 填写Bucket名称,例如examplebucket。
bucket_name = 'examplebucket'
# yourEndpoint填写Bucket所在Region对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
bucket = oss2.Bucket(auth, 'yourEndpoint', bucket_name)
# 填写不包含Bucket名称在内源Object的完整路径,例如srcobject.txt。
src_object_name = 'srcobject.txt'
# 填写不包含Bucket名称在内目标Object的完整路径,例如destobject.txt。
dest_object_name = 'destobject.txt'
# 将examplebucket下的srcobject.txt拷贝至同一Bucket下的destobject.txt。
result = bucket.copy_object(bucket_name, src_object_name, dest_object_name)
# 查看返回结果的状态。如果返回值为200,表示执行成功。
print('result.status:', result.status)
# 删除srcobject.txt。
result_del = bucket.delete_object(src_object_name)
# 查看返回结果的状态。如果返回值为204,表示执行成功。
print('result.status:', result_del.status)
说明 OSS也不支持直接对目录进行重命名。如果需要重命名目录,您可以参考以上示例对该目录下的子目录和Object逐个进行重命名操作。
相关文档
关于重命名文件涉及的API接口说明,请分别参见CopyObject和DeleteObject。