日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

Android拷貝文件

本文介紹如何將源Bucket中的文件(Object)復制到同一地域下相同或不同目標Bucket中。

注意事項

  • 拷貝文件時,您必須擁有源文件的讀權限及目標Bucket的讀寫權限。

  • 不支持跨地域拷貝。例如不能將華東1(杭州)地域存儲空間中的文件拷貝到華北1(青島)地域。

  • 拷貝的文件大小不能超過1 GB。

  • 使用本文示例前您需要先通過自定義域名、STS等方式新建OSSClient,具體請參見如何初始化AndroidOSSClient實例

示例代碼

以下代碼用于拷貝文件:

// 填寫源Bucket名稱。
String srcBucketName = "srcbucket";
// 填寫源Bucket內的Object完整路徑。
String srcObjectKey = "dir1/srcobject.txt";
// 填寫與源Bucket處于同一地域的目標Bucket名稱。
String destBucketName = "destbucket";
// 填寫目標Bucket內的Object完整路徑。
String destObjectKey = "dir2/destobject.txt";
// 創建Copy請求。
CopyObjectRequest copyObjectRequest = new CopyObjectRequest(srcBucketName, srcObjectKey, destBucketName, destObjectKey);

// ObjectMetadata objectMetadata = new ObjectMetadata();
// 設置Object的訪問權限。此處設置有private,表示私有訪問權限。
// objectMetadata.setHeader("x-oss-object-acl", "private");
// 設置Object存儲類型。此處設置為Standard,表示標準存儲類型。
// objectMetadata.setHeader("x-oss-storage-class", "Standard");
// 指定CopyObject操作時是否覆蓋同名目標Object。此處設置為true,表示禁止覆蓋同名Object。
// objectMetadata.setHeader("x-oss-forbid-overwrite", "true");
// 如果源Object的ETag值和您提供的ETag相等,則執行拷貝操作。
// objectMetadata.setHeader("x-oss-copy-source-if-match", "5B3C1A2E053D763E1B002CC607C5****");
// 指定拷貝的源地址。
// objectMetadata.setHeader("x-oss-copy-source", "/examplebucket/recode-test.txt");
// 如果源Object的ETag值和您提供的ETag不相等,則執行拷貝操作。
// objectMetadata.setHeader("x-oss-copy-source-if-none-match", "5B3C1A2E053D763E1B002CC607C5****");
// 如果指定的時間等于或者晚于文件實際修改時間,則執行拷貝操作。
// objectMetadata.setHeader("x-oss-copy-source-if-unmodified-since", "2021-12-09T07:01:56.000Z");
// 如果源Object在指定時間后被修改過,則執行拷貝操作。
// objectMetadata.setHeader("x-oss-copy-source-if-modified-since", "2021-12-09T07:01:56.000Z");
// 指定設置目標Object元數據的方式。此處設置為COPY,表示復制源Object的元數據到目標Object。
// objectMetadata.setHeader("x-oss-metadata-directive", "COPY");
// 指定OSS創建目標Object時使用的服務器端加密算法。
// objectMetadata.setHeader("x-oss-server-side-encryption", "SSE-KMS");
// 表示KMS托管的用戶主密鑰,該參數僅在x-oss-server-side-encryption為KMS時有效。
// objectMetadata.setHeader("x-oss-server-side-encryption-key-id", "9468da86-3509-4f8d-a61e-6eab1eac****");
// 指定Object的對象標簽,可同時設置多個標簽。
// objectMetadata.setHeader("x-oss-tagging", "a:1");
// 指定設置目標Object對象標簽的方式。此處設置為COPY,表示復制源Object的對象標簽到目標Object。
// objectMetadata.setHeader("x-oss-tagging-directive", "COPY");

// 異步Copy。
OSSAsyncTask copyTask = oss.asyncCopyObject(copyObjectRequest, new OSSCompletedCallback<CopyObjectRequest, CopyObjectResult>() {
    @Override
    public void onSuccess(CopyObjectRequest request, CopyObjectResult result) {
        Log.d("copyObject", "copy success!");
    }

    @Override
    public void onFailure(CopyObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // 請求異常。
        if (clientExcepion != null) {
            // 客戶端異常,例如網絡異常等。
            clientExcepion.printStackTrace();
        }
        if (serviceException != null) {
            // 服務端異常。
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});

相關文檔