最終更新日:2025-08-27 11:19:50
このAPIは、クラウドストレージプラットフォーム内の圧縮ファイルに対して解凍処理(展開処理)を実行するために使用します。解凍が完了すると、クラウドストレージ内に解凍済みファイルの情報を含むリストファイルが自動的に生成されます。本インターフェースを使用するには、wos:ProcessMedia 権限と対象ファイルに対する putObject 権限が必要です。解凍後に元ファイルを削除する設定にした場合は、deleteObject 権限も必要となります。
POST /key?decompression HTTP/1.1
Host: Bucket.Endpoint
Date: Date
Authorization: Authorization
<?xml version="1.0" encoding="utf-8"?>
<Decompression xmlns="http://wcs.chinanetcenter.com/document">
<Config>
<Param>
<format>string</format>
<bucket>string</bucket>
...
</Param>
<Output>
<OutputBucket>string</OutputBucket>
<OutputKey>string</OutputKey>
</Output>
</Config>
<NotifyURL>string</NotifyURL>
<Force>int</Force>
</Decompression>
なし
必要なのは Common Request Headers のみです。
リクエストボディには以下のXMLデータを記述します。
| 要素名 | 説明 | 必須 |
|---|---|---|
| Decompression | 解凍設定リストを定義します。 型: XML 子要素: Config, NotifyURL, Force 親要素: なし |
Yes |
| Config | 解凍操作を定義します。 型: XML 子要素: Param, Output 親要素: Decompression |
Yes |
| Param | 解凍に関する詳細設定を指定します。 型: XML 子要素: format, dir など 親要素: Config |
Yes |
| Output | 出力ファイル情報を定義します。 型: XML 子要素: OutputBucket, OutputKey 親要素: Config |
Yes |
| OutputBucket | 出力ファイルを保存するバケット名。 型: string 親要素: Output |
No |
| OutputKey | 出力ファイル名。UrlEncoded形式で指定。 型: string 親要素: Output |
No |
| NotifyURL | 処理結果の通知用URL。UrlEncoded形式で指定。 型: string 親要素: Decompression |
No |
| Force | データ処理の強制実行フラグ。デフォルトは0。 選択肢: 0: 処理済み結果が既に存在する場合、システムは再処理せず「file already exists」と返し、無駄なリソース消費を回避します。 1: 強制的に処理を行い、既存ファイルを上書きします。 型: integer 親要素: Decompression |
No |
成功時には以下のレスポンスが返却されます。
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
Date: date
Server: WS-web-server
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DecompressionResult xmlns="http://wcs.chinanetcenter.com/document">
<Succeed>
<PersistentId>string</PersistentId>
</Succeed>
</DecompressionResult>
Common Response Headers のみが利用されます。
| 要素名 | 説明 |
|---|---|
| PersistentId | 解凍タスクのID |
POST /test.zip?decompression HTTP/1.1
Host: Bucket.Endpoint
Date: Date
Authorization: Authorization
<?xml version="1.0" encoding="utf-8"?>
<Decompression xmlns="http://wcs.chinanetcenter.com/document">
<Config>
<Param>
<format>zip</format>
<crush>0</crush>
</Param>
<Output>
<OutputBucket>excite</OutputBucket>
<OutputKey>test.list</OutputKey>
</Output>
</Config>
</Decompression>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
Date: date
Server: WS-web-server
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<DecompressionResult xmlns="http://wcs.chinanetcenter.com/document">
<Succeed>
<PersistentId>20500a49659******e088b1f736aa2a4</PersistentId>
</Succeed>
</DecompressionResult>
このAPIは、クラウドストレージ内の解凍持続タスク(ジョブ)の状態を照会します。wos:GetProcessMediaStatus 権限が必要です。
GET /?decompression&persistentId=<persistentId>
Host: Bucket.Endpoint
Date: Date
Authorization: Authorization
| パラメータ名 | 必須 | 説明 |
|---|---|---|
| persistentId | Yes | 解凍APIから返されるpersistentId |
Common Request Headers のみが必要です。
なし
HTTP/1.1 StatusCode
Date: Date
Content-Type: type
Content-Length: length
Server: WS-web-server
<?xml version="1.0" encoding="utf-8"?>
<QueryDecompressionResult xmlns="https://wcs.chinanetcenter.com/document">
<Id>string</Id>
<CreationTime>string</CreationTime>
<Input>
<Bucket>string</Bucket>
<Key>string</Key>
<Size>int</Size>
</Input>
<Item>
<Cmd>string</Cmd>
<Code>int</Code>
<Desc>string</Desc>
<CostTime>int</CostTime>
<Error>string</Error>
<Output>
<OutputBucket>string</OutputBucket>
<OutputKey>string</OutputKey>
<Size>int</Size>
</Output>
</Item>
</QueryDecompressionResult>
Common Response Headers のみが利用されます。
Request Example:
GET /?decompression&persistentId=20500a496******b1f736aa2a4
Host: Bucket.Endpoint
Date: Date
Authorization: Authorization
Response Example
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length
Date: date
Server: WS-web-server
<?xml version="1.0" encoding="utf-8"?>
<QueryDecompressionResult xmlns="https://wcs.chinanetcenter.com/document">
<Id>20500a496******b1f736aa2a4</Id>
<CreationTime>2019-05-16T03:16:05Z</CreationTime>
<Input>
<Bucket>sweet</Bucket>
<Key>happy%2Ftest.zip</Key>
<Size>1000</Size>
</Input>
<Item>
<Cmd>decompression/zip</Cmd>
<Code>3</Code>
<CostTime>0</CostTime>
<Desc>finish</Desc>
<Error>null</Error>
<Output>
<OutputBucket>excite</OutputBucket>
<OutputKey>test.list</OutputKey>
<Size>2000</Size>
</Output>
</Item>
</QueryDecompressionResult>
通知データは下記の形式で送信されます。
<?xml version="1.0" encoding="utf-8"?>
<NotifyBody xmlns="https://wcs.chinanetcenter.com/document">
<Id>string</Id>
<CreatTime>string</CreatTime>
<Input>
<Bucket>string</Bucket>
<Key>string</Key>
<Size>int</Size>
</Input>
<Item>
<Cmd>string</Cmd>
<Code>int</Code>
<Desc>string</Desc>
<CostTime>int</CostTime>
<Error>string</Error>
<Output>
<OutputBucket>string</OutputBucket>
<OutputKey>string</OutputKey>
<Size>int</Size>
<Hash>string</Hash>
</Output>
</Item>
</NotifyBody>
| パラメータ名 | 説明 |
|---|---|
| NotifyBody | 持続処理の結果データ。型: XML |
| Id | インターフェースから返された persistentId。型: string。親: NotifyBody |
| CreationTime | タスク作成時刻(yyyymmddhhmmss 形式)。型: string。親: NotifyBody |
| Input | 対象ファイル情報。型: XML。親: NotifyBody。子: Bucket, Key, Size |
| Bucket | 対象ファイルのバケット名。型: string。親: Input |
| Key | 対象ファイル名(URLエンコード)。型: string。親: Input |
| Size (Input) | 対象ファイルサイズ。型: integer。親: Input |
| Item | 解凍処理のステータス情報。型: XML。親: NotifyBody |
| Cmd | 操作コマンド(ops)。型: string。親: Item |
| Code | ステータスコード。失敗は2、成功は3。型: integer。親: Item |
| Desc | ステータスコードの詳細説明。型: string。親: Item |
| CostTime | 持続処理の消費時間。特別な場合を除き通常0。型: integer。親: Item |
| Error | 失敗時の原因詳細。型: string。親: Item |
| Output | 処理済みファイル情報。型: XML。親: Item |
| OutputBucket | 処理済みファイルのバケット名。型: string。親: Output |
| OutputKey | 処理済みファイル名(URLエンコード)。型: string。親: Output |
| Size (Output) | 処理済みファイルサイズ。型: integer。親: Output |
| Hash | 処理結果のハッシュ値。型: string。親: Output |
| パラメータ | 必須 | 説明 |
|---|---|---|
| bucket | No | 解凍ファイルを指定したバケットに保存します。 |
| crush | No | 解凍後の処理: 2 - 圧縮ファイルを削除し、リストファイルは作成しない 1 - 圧縮ファイルを削除し、リストファイルは残す 0 - 両方とも残す |
| format | Yes | 圧縮ファイルのフォーマット(zip、tar、gzip、7z、rar をサポート) |
| p | No | 展開パスワード。RSA暗号化する必要があります。 1. 利用者自身でRSA鍵ペアを用意し、公開鍵をオブジェクトストレージへ共有してください。 |
| prefix | No | 解凍対象ファイルの保存先パスを指定(URLエンコード 必要)。省略時はアーカイブと同じディレクトリ内に展開されます。 |
注意: 元ファイルを削除する場合は、
deleteObject権限が必要です。