歸檔、冷歸檔、深度冷歸檔類型的Object需要解凍(Restore)之後才能讀取。本文介紹如何解凍歸檔、冷歸檔、深度冷歸檔類型的Object。
注意事項
僅歸檔、冷歸檔、深度冷歸檔類型的Objec支援調用RestoreObject方法。
本文以華東1(杭州)外網Endpoint為例。如果您希望通過與OSS同地區的其他阿里雲產品訪問OSS,請使用內網Endpoint。關於OSS支援的Region與Endpoint的對應關係,請參見OSS地區和訪問網域名稱。
本文以從環境變數讀取存取憑證為例。如何配置訪問憑證,請參見配置訪問憑證。
本文以OSS網域名稱建立OSSClient為例。如果您希望通過自訂網域名、STS等方式建立OSSClient,請參見初始化。
要解凍Object,您必須有
oss:RestoreObject
許可權。具體操作,請參見為RAM使用者授權自訂的權限原則。
解凍歸檔Object
以下代碼用於解凍歸檔Object:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import RestoreConfiguration
# 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region資訊,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# yourBucketName填寫儲存空間名稱。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# 填寫不包含Bucket名稱在內的歸檔類型Object的完整路徑。
objectName = 'yourArchiveObjectName'
# 配置解凍狀態期間,預設為1天。本程式碼範例以解凍狀態期間為2天為例。
days = 2
restore_config = RestoreConfiguration(days=days)
# 發起解凍請求。
bucket.restore_object(objectName, input=restore_config)
解凍冷歸檔Object
以下代碼用於解凍冷歸檔Object:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import (RestoreJobParameters,
RestoreConfiguration,
RESTORE_TIER_EXPEDITED,
RESTORE_TIER_STANDARD,
RESTORE_TIER_BULK)
# 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region資訊,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# yourBucketName填寫儲存空間名稱。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# 填寫不包含Bucket名稱在內的冷歸檔類型Object的完整路徑。
object_name = "yourColdArchiveObjectName"
# 配置解凍狀態期間,預設為1天。本程式碼範例以解凍狀態期間為2天為例。
days = 2
# 配置解凍優先順序。本程式碼範例以最低解凍優先順序的RESTORE_TIER_BULK為例。
# RESTORE_TIER_EXPEDITED: 1個小時之內解凍完成。
# RESTORE_TIER_STANDARD: 2~5小時之內解凍完成。
# RESTORE_TIER_BULK: 5~12小時之內解凍完成。
job_parameters = RestoreJobParameters(RESTORE_TIER_BULK)
restore_config = RestoreConfiguration(days=days, job_parameters=job_parameters)
# 發起解凍請求。
bucket.restore_object(object_name, input=restore_config)
解凍深度冷歸檔Object
以下代碼用於解凍深度冷歸檔Object:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import (RestoreJobParameters,
RestoreConfiguration,
RESTORE_TIER_EXPEDITED,
RESTORE_TIER_STANDARD)
# 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# 填寫Bucket所在地區對應的Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# 填寫Endpoint對應的Region資訊,例如cn-hangzhou。注意,v4簽名下,必須填寫該參數
region = "cn-hangzhou"
# yourBucketName填寫儲存空間名稱。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# 填寫不包含Bucket名稱在內的深度冷歸檔類型Object的完整路徑。
object_name = "yourDeepColdArchiveObjectName"
# 配置解凍狀態期間,預設為1天。本程式碼範例以解凍狀態期間為2天為例。
days = 2
# 配置解凍優先順序。本程式碼範例以RESTORE_TIER_STANDARD為例。
# RESTORE_TIER_EXPEDITED: 12個小時之內解凍完成。
# RESTORE_TIER_STANDARD: 48小時之內解凍完成。
job_parameters = RestoreJobParameters(RESTORE_TIER_STANDARD)
restore_config = RestoreConfiguration(days=days, job_parameters=job_parameters)
# 發起解凍請求。
bucket.restore_object(object_name, input=restore_config)
相關文檔
關於解凍歸檔、冷歸檔、深度冷歸檔類型的Object的完整範例程式碼,請參見GitHub樣本
關於解凍歸檔、冷歸檔、深度冷歸檔類型的Object的API介面說明,請參見RestoreObject。