OSS不支持直接对文件(Object)进行重命名。如果您需要在同一个Bucket内对Object进行重命名,您可以通过CopyObject接口将源Object拷贝至目标Object,然后通过DeleteObject接口删除源Object。
注意事项
使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见如何初始化Android端OSSClient实例。
示例代码
以下代码用于将examplebucket下的srcobject.txt重命名为destobject.txt。
// 填写Bucket名称。
String bucketName = "examplebucket";
// 填写不包含Bucket名称在内源Object的完整路径,例如srcobject.txt。
String sourceObjectKey = "srcobject.txt";
// 填写不包含Bucket名称在内目标Object的完整路径,例如destobject.txt。
String objectKey = "destobject.txt";
try {
CopyObjectRequest copyObjectRequest = new CopyObjectRequest(bucketName, sourceObjectKey, bucketName, objectKey);
oss.copyObject(copyObjectRequest);
// 删除srcobject.txt。
DeleteObjectRequest deleteObjectRequest = new DeleteObjectRequest(bucketName, sourceObjectKey);
oss.deleteObject(deleteObjectRequest);
} catch (ClientException e) {
// 客户端异常,例如网络异常等。
e.printStackTrace();
} catch (ServiceException e) {
// 服务端异常。
Log.e("RequestId", e.getRequestId());
Log.e("ErrorCode", e.getErrorCode());
Log.e("HostId", e.getHostId());
Log.e("RawMessage", e.getRawMessage());
}
说明
OSS也不支持直接对目录进行重命名。如果需要重命名目录,您可以参考以上示例对该目录下的子目录和Object逐个进行重命名操作。
相关文档
关于重命名文件涉及的API接口说明,请分别参见CopyObject和DeleteObject。
关于初始化OSSClient,请参见如何初始化Android端OSSClient实例。