OSS歸檔文件特性:
1.上傳文件即爲凍結狀態。
2.阿里雲控制檯手動解凍需要1分鐘左右,其他調用解凍時長爲1分鐘-4小時不等。
3.一次解凍流程可以持續24小時,24小時內再次調用會自動延長24小時,一次解凍最多可以有效調用7次接口。
4.解凍狀態結束後,狀態會自動凍結。
java解凍歸檔文件說明。
歸檔類型(Archive)的文件需要解凍(Restore)之後才能讀取。非歸檔類型的文件,不要調用RestoreObject方法。
歸檔類型的Object在執行解凍前後的狀態變換過程如下:
歸檔類型的Object初始時處於冷凍狀態。
提交一次解凍請求後,Object處於解凍中的狀態。完成解凍任務通常需要1分鐘,最長等待任務完成時間爲4小時。
服務端完成解凍任務後,Object進入解凍狀態,此時您可以讀取Object。解凍狀態默認持續24小時,24小時內再次調用RestoreObject接口則解凍狀態會自動延長24小時。對於同份歸檔文件,一次解凍流程內可有效調用7次RestoreObject接口達到最長7天的解凍持續時間。
解凍狀態結束後,Object再次返回到冷凍狀態。
以下代碼用於解凍歸檔文件:
// Endpoint以杭州爲例,其它Region請按實際情況填寫。
String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// 阿里雲主賬號AccessKey擁有所有API的訪問權限,風險很高。強烈建議您創建並使用RAM賬號進行API訪問或日常運維,請登錄 https://ram.console.aliyun.com 創建RAM賬號。
String accessKeyId = "<yourAccessKeyId>";
String accessKeySecret = "<yourAccessKeySecret>";
String bucketName = "<yourBucketName>";
String objectName = "<yourObjectName>";
// 創建OSSClient實例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
ObjectMetadata objectMetadata = ossClient.getObjectMetadata(bucketName, objectName);
// 校驗文件是否爲歸檔文件。
StorageClass storageClass = objectMetadata.getObjectStorageClass();
if (storageClass == StorageClass.Archive) {
// 解凍文件。
ossClient.restoreObject(bucketName, objectName);
// 等待解凍完成。
do {
Thread.sleep(1000);
objectMetadata = ossClient.getObjectMetadata(bucketName, objectName);
} while (!objectMetadata.isRestoreCompleted());
}
// 獲取解凍文件。
OSSObject ossObject = ossClient.getObject(bucketName, objectName);
ossObject.getObjectContent().close();
// 關閉OSSClient。
ossClient.shutdown();
解凍文檔說明鏈接:https://cn.aliyun.com/ss/5b2S5qGj5a2Y5YKo6Kej5Ya7/1_h
java解凍文件說明鏈接:https://help.aliyun.com/document_detail/84846.html?spm=5176.11065259.1996646101.searchclickresult.487356934w3in6