本文介紹如何操作使用者Bucket中的壓縮包和待壓縮檔,包括查看壓縮包內容、將壓縮檔進行解壓縮處理以及將使用者Bucket內的多個檔案進行壓縮。適用於各種情境,如資料備份、存檔管理、檔案傳輸等。通過使用這些方法,使用者可以更高效地管理和處理儲存在Bucket中的資料,提高資料轉送速度、減少儲存空間佔用,以及方便地進行檔案歸檔和共用。
功能簡介
Intelligent Media Management服務提供了雲上資源的壓縮和解壓縮功能,該功能協助使用者高效、便捷地進行雲上檔案管理,使用者可以根據需要使用該功能對OSS中的檔案進行在線壓縮和解壓縮。
前提條件
已建立並擷取AccessKey。具體操作,請參見建立AccessKey。
已開通OSS服務、建立儲存空間並上傳檔案到儲存空間。具體操作,請參見控制台上傳檔案。
已開通Intelligent Media Management服務。具體操作,請參見開通產品。
已通過Intelligent Media Management控制台建立專案。具體操作,請參見建立專案。
說明您也可以調用API介面建立專案。具體操作,請參見CreateProject - 建立專案。
您可以調用ListProjects - 列出所有專案資訊的列表介面列出指定地區下已建立的所有專案資訊。
支援格式
壓縮功能僅支援進行打包操作。
壓縮功能僅支援ZIP格式檔案。
解壓縮及壓縮包預覽功能支援ZIP、RAR和7z格式檔案。
注意事項
壓縮、查看壓縮包內容、解壓縮各任務開始執行後,任務資訊只儲存7天,超過7天則無法再擷取。您可以通過以下四種方式及時擷取任務資訊:
調用GetTask - 擷取任務資訊或ListTasks - 列出任務介面擷取返回的
TaskId,查看任務資訊。在與Intelligent Media Management相同的地區下開通MNS服務,並配置訂閱關係,及時擷取任務資訊通知,非同步通知訊息格式請參見非同步通知訊息格式。關於MNS SDK的更多資訊,請參見步驟四:接收和刪除訊息。
在與Intelligent Media Management相同的地區下開通RocketMQ服務,並建立RocketMQ 4.0執行個體、Topic、Group,及時擷取任務資訊通知,非同步通知訊息格式請參見非同步通知訊息格式。關於RocketMQ使用的更多資訊,請參見調用HTTP協議的SDK收發普通訊息。
在與Intelligent Media Management相同的地區下開通並接入事件匯流排EventBridge服務,及時擷取任務資訊通知。更多資訊,請參見Intelligent Media ManagementIMM事件。
壓縮
調用CreateFileCompressionTask - 建立檔案壓縮任務介面將OSS Bucket中的多個檔案進行壓縮處理。
壓縮資訊
專案名稱:test-project
待壓縮檔:
oss://test-bucket/test-object1.jpg
oss://test-bucket/test-object2.jpg
oss://test-bucket/test-object3.jpg
oss://test-bucket/test-object4.jpg
輸出壓縮檔的OSS地址:oss://test-bucket/test-target-object.zip
請求樣本
{
"ProjectName": "test-project",
"CompressedFormat": "zip",
"Sources": "[{\"URI\":\"oss://test-bucket/test-object1.jpg\"},{\"URI\":\"oss://test-bucket/test-object2.jpg\"},{\"URI\":\"oss://test-bucket/test-object3.jpg\"},{\"URI\":\"oss://test-bucket/test-object4.jpg\"}]",
"TargetURI": "oss://test-bucket/test-target-object.zip"
}返回樣本
{
"TaskId": "FileCompression-7e3e2b8c-81bd-495f-a338-25b3762a****",
"RequestId": "C54C5888-9C96-5A35-AF73-ABD6EF15****",
"EventId": "164-1S6uXTYhUU4qAFCPOTcYdcb****"
}範例程式碼
查看壓縮包內容
調用CreateArchiveFileInspectionTask - 建立壓縮包解析任務介面查看OSS壓縮包內容。
壓縮包資訊
專案名稱:test-project
壓縮包路徑:oss://test-bucket/test-target-object.zip
任務執行結果儲存地址:oss://test-bucket/test-target-object.json
請求樣本
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-target-object.zip",
"TargetURI": "oss://test-bucket/test-target-object.json"
}返回樣本
{
"TaskId": "ArchiveFileInspection-4a7c308a-5671-4d34-ba41-86a942d0****",
"RequestId": "20D23855-C9E6-5193-8939-3A8797E1****",
"EventId": "2AB-1S53L6FTdU6yMxkc1JgpwcV****"
}範例程式碼
解壓縮
調用CreateFileUncompressionTask - 建立解壓縮任務介面對OSS中的壓縮包進行解壓縮處理。
解壓縮資訊
專案名稱:test-project
壓縮包路徑:oss://test-bucket/test-target-object.zip
待解壓縮檔案:test-object1.jpg
解壓縮檔案的存放路徑:oss://test-bucket/test-target-object
請求樣本
{
"ProjectName": "test-project",
"SourceURI": "oss://test-bucket/test-target-object.zip",
"Target": "{\"URI\":\"oss://test-bucket/test-target-object\"}",
"SelectedFiles": "[\"test-object1.jpg\"]"
}返回樣本
{
"TaskId": "FileUncompression-f31061ab-eaeb-469d-ac8f-9af10e5d****",
"RequestId": "20115435-9F59-58C0-8D15-E6ECC096****",
"EventId": "3B6-1S6ywKAB2ogXJnrzmk6tFUF****"
}範例程式碼
計費說明
在壓縮包檔案解壓過程中, OSS 和 IMM 兩側將會產生以下計費項目:
OSS 側: 詳細定價請參見OSS產品定價。
API
計費項目
說明
GetObject
GET 類型請求
根據成功的請求次數計算請求費用。
外網流出流量費用
如果是通過外網Endpoint(樣本值oss-cn-hangzhou.aliyuncs.com)或者傳輸加速Endpoint(樣本值oss-accelerate.aliyuncs.com)調用GetObject介面時,會產生外網流出流量費用,根據資料容量大小計費。
低頻訪問資料取回容量
如果取回的資料是低頻訪問資料,會產生低頻訪問資料取回容量的費用,按資料取回量計費。
歸檔直讀資料取回容量
如果讀取的是歸檔的Object且Bucket開啟了歸檔直讀,會產生歸檔直讀資料取回容量費用,根據取回的資料容量大小計費。
傳輸加速
如果開啟了傳輸加速功能且使用傳輸加速網域名稱訪問您的Bucket會產生傳輸加速費用,根據資料容量大小計費。
IMM 側: 詳細定價請參見IMM計費項目。
重要自北京時間 2025 年 7 月 28 日 11:00 起,IMM檔案壓縮解壓服務將由原來的免費模式升級為計費模式。更多資訊,請參見IMM計費調整公告。
API
計費項目
說明
CreateFileCompressionTask
FileProcess
根據壓縮的源檔案大小計算壓縮請求的費用。
CreateFileUncompressionTask
根據解壓出的檔案大小計算解壓縮請求的費用。
CreateArchiveFileInspectionTask
FilePreview
根據預覽的壓縮包大小計算預覽的費用。
FAQ
通過CreateFileCompressionTask介面建立zip成功後,需要多久才能擷取到壓縮後的zip檔案?
可以通過GetTask - 擷取任務資訊介面輪詢任務狀態,或者通過非同步任務輕量訊息佇列(原 MNS)訊息處理樣本非同步接收成功的訊息。
建立檔案壓縮任務介面CreateFileCompressionTask,可以將多個不同OSS桶的檔案壓縮到一起嗎?
可以將多個不同OSS桶的檔案壓縮到一起,需要有許可權。