このトピックでは、Intelligent Media Management (IMM) を使用して Object Storage Service (OSS) に保存されている 1 つ以上のオブジェクトを圧縮する方法、パッケージ内のファイルコンテンツをクエリする方法、およびパッケージを展開する方法について説明します。圧縮と展開は、データ転送、バックアップ、アーカイブなど、多くのシナリオで役立ちます。圧縮と展開を使用して、バケット内のデータを効率的に管理および処理できます。たとえば、この機能を使用して、データ転送速度を向上させ、ストレージ使用量を削減し、データのアーカイブと共有を容易にすることができます。
機能概要
IMM は、クラウド内のファイルの圧縮と展開をサポートしており、効率を向上させ、ファイル管理を簡素化します。IMM を使用して、OSS 内のオブジェクトをオンラインで圧縮および展開できます。
前提条件
AccessKey ペアが作成され、取得されていること。詳細については、「AccessKey ペアの作成」をご参照ください。
OSS が有効化され、バケットが作成され、オブジェクトがバケットにアップロードされていること。詳細については、「オブジェクトのアップロード」をご参照ください。
IMM が有効化されていること。詳細については、「IMM の有効化」をご参照ください。
IMM コンソールでプロジェクトが作成されていること。IMM コンソールを使用してプロジェクトを作成する方法の詳細については、「プロジェクトの作成」をご参照ください。
説明CreateProject 操作を呼び出してプロジェクトを作成することもできます。詳細については、「CreateProject」をご参照ください。
ListProjects 操作を呼び出して、特定のリージョン内の既存のプロジェクトをクエリできます。詳細については、「ListProjects」をご参照ください。
サポートされているフォーマット
圧縮機能は、パッケージング操作のみをサポートします。
圧縮機能は、ZIP フォーマットのみをサポートします。
展開およびパッケージプレビュー機能は、ZIP、RAR、および 7z フォーマットをサポートします。
注意
圧縮、パッケージ読み取り、および展開タスクの情報は、タスク開始日から 7 日間保持され、7 日間の期間が終了した後はクエリできません。次のいずれかのメソッドを使用してタスク情報をクエリできます。
IMM プロジェクトが配置されているリージョンで、Simple Message Queue (SMQ) サブスクリプションを構成して、タスク情報通知を受信します。詳細については、「非同期メッセージの例」をご参照ください。MNS SDK の詳細については、「ステップ 4: メッセージの受信と削除」をご参照ください。
IMM プロジェクトが配置されているリージョンで、ApsaraMQ for RocketMQ 4.0 インスタンス、Topic、およびグループを作成して、タスク通知を受信します。詳細については、「非同期メッセージの例」をご参照ください。ApsaraMQ for RocketMQ の使用方法の詳細については、「HTTP クライアント SDK を使用して通常メッセージを送受信する」をご参照ください。
IMM プロジェクトが配置されているリージョンで、EventBridge を使用してタスク情報通知を受信します。詳細については、「IMM イベント」をご参照ください。
圧縮
CreateFileCompressionTask - ファイル圧縮タスクの作成 操作を呼び出して、OSS バケット内の複数のオブジェクトを圧縮します。
圧縮情報
IMM プロジェクト: 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://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 リクエスト
成功したリクエストの数に基づいてリクエスト料金が請求されます。
インターネット経由のアウトバウンドトラフィック
oss-cn-hangzhou.aliyuncs.com などのパブリックエンドポイント、または oss-accelerate.aliyuncs.com などのアクセラレーションエンドポイントを使用して GetObject 操作を呼び出す場合、データサイズに基づいてインターネット経由のアウトバウンドトラフィックの料金が請求されます。
IA オブジェクトの取得
IA オブジェクトが取得された場合、取得された IA オブジェクトのサイズに基づいて IA データ取得料金が請求されます。
アーカイブダイレクト読み取りからのデータ取得容量
リアルタイムアクセスが有効になっているバケット内のアーカイブオブジェクトが取得された場合、取得されたアーカイブオブジェクトのサイズに基づいてアーカイブデータ取得料金が請求されます。
転送アクセラレーション
転送アクセラレーションを有効にし、アクセラレーションエンドポイントを使用してバケットにアクセスする場合、データサイズに基づいて転送アクセラレーション料金が請求されます。
IMM 側: 料金の詳細については、「IMM 課金項目」をご参照ください。
重要2025 年 7 月 28 日 11:00 (UTC + 08:00) 以降、IMM ファイルの圧縮および展開サービスは無料モデルから有料モデルにアップグレードされます。詳細については、「IMM 課金調整のお知らせ」をご参照ください。
API
課金項目
説明
CreateFileCompressionTask
FileProcess
圧縮するソースファイルのサイズに基づいて圧縮料金が請求されます。
CreateFileUncompressionTask
展開されたファイルのサイズに基づいて展開料金が請求されます。
CreateArchiveFileInspectionTask
FilePreview
プレビューするパッケージのサイズに基づいてプレビュー料金が請求されます。
よくある質問
CreateFileCompressionTask 操作がパッケージの作成を完了したかどうかは、どうすればわかりますか?
GetTask - タスク情報のクエリ 操作を呼び出してタスクのステータスをポーリングするか、非同期タスク軽量メッセージキュー (旧 MNS) メッセージ処理の例 を使用して成功メッセージを非同期で受信できます。
CreateFileCompressionTask 操作を使用して、異なる OSS バケットのオブジェクトを単一のパッケージに圧縮できますか?
はい、必要な権限があれば、異なる OSS バケットのオブジェクトを単一のパッケージに圧縮できます。