全部產品
Search
文件中心

Object Storage Service:Android擷取檔案中繼資料

更新時間:Feb 28, 2024

通過HeadObject方法可以只擷取檔案中繼資料而不擷取檔案的實體。

注意事項

  • 檔案中繼資料是對檔案的屬性描述,包括HTTP標準屬性(HTTP Header)和使用者自訂中繼資料(User Meta)兩種。您可以通過設定HTTP標準屬性來自訂HTTP請求的策略,例如檔案(Object)緩衝策略、強制下載策略等。您還可以通過設定使用者自訂中繼資料來標識Object的用途或屬性等。更多資訊,請參見檔案中繼資料

  • Android SDK當前不支援設定和修改檔案中繼資料。

  • 使用本文樣本前您需要先通過自訂網域名、STS等方式建立OSSClient,具體請參見如何初始化Android端OSSClient執行個體

範例程式碼

以下代碼用於擷取檔案中繼資料。

// 建立同步擷取檔案中繼資料請求。
// 依次填寫Bucket名稱(例如examplebucket)和Object完整路徑(例如exampledir/exampleobject.txt)。Object完整路徑中不能包含Bucket名稱。
HeadObjectRequest head = new HeadObjectRequest("examplebucket", "exampledir/exampleobject.txt");

// 擷取檔案中繼資料。
OSSAsyncTask task = oss.asyncHeadObject(head, new OSSCompletedCallback<HeadObjectRequest, HeadObjectResult>() {
    @Override
    public void onSuccess(HeadObjectRequest request, HeadObjectResult result) {
    
    // 擷取檔案長度。
        Log.d("headObject", "object Size: " + result.getMetadata().getContentLength()); 
    // 擷取檔案類型。
        Log.d("headObject", "object Content Type: " + result.getMetadata().getContentType()); 
    }

    @Override
    public void onFailure(HeadObjectRequest 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());
        }
    }
});

// task.waitUntilFinished(); //等待任務完成。

相關文檔