全部產品
Search
文件中心

Object Storage Service:Python解凍檔案

更新時間:Nov 13, 2024

歸檔、冷歸檔、深度冷歸檔類型的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