通過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(); //等待任務完成。
相關文檔
關於擷取檔案中繼資料的API介面說明,請參見GetObjectMeta。
關於初始化OSSClient,請參見如何初始化Android端OSSClient執行個體。