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執行個體。