edit-icon download-icon

OSS で ZIP ファイルを解凍する

最終更新日: Oct 08, 2019

OSS で ZIP ファイルを解凍する

OSS コンソールは、ZIP ファイルの自動解凍をサポートしています。この機能には Function Compute も必要です。OSS コンソールの必要なバケットに、トリガーを設定する必要があります。現在、OSS は ZIP ファイルのみ解凍できます。以下のセクションでは、機能の設定方法と注意事項について説明します。

アーキテクチャ

Created with Raphaël 2.1.2ZIP ファイルZIP ファイルOSSOSSFunction ComputeFunction ComputeZIP ファイルをアップロードします。自動的に関数を起動し、デフォルトで PUT と POST リクエストをサポートしています。ファイルを解凍します。

OSS コンソールを設定する

次の図に示すように、OSS コンソールに移動して必要なバケットを選択し、[Function Compute] タブをクリックします。001

注意:Function Compute を有効化していない場合は、以下の操作を実行する前に Function Compute を有効化する必要があります。

次の図に示すように、ZIP パッケージの解凍ボタンをクリックして、OSS トリガーを編集するためのページに移動します。002編集ページで次のパラメーターを設定します。

  1. サービス許可: Function Compute が OSS との間で読み書きを行うこと、および OSS 内の指定されたバケットで関数を実行することを許可します。[許可] ボタンをクリックして RAM ユーザーを設定します。各トリガーには許可が必要です。
  2. トリガーロール: OSS が Function Compute にアクセスすることを許可します。この設定は一度だけ必要です。
  3. プレフィックス: 関数をトリガーするファイルのプレフィックスを指定します。このパラメーターを設定することを推奨します。このパラメーターを設定しないと、システムはデフォルトでバケット内のすべての ZIPファイルを照合します。その結果、関数が繰り返し実行される可能性があります。詳細については、FAQ をご参照ください。
  4. 解凍先ディレクトリ:抽出したファイルを置くディレクトリを指定します。このパラメーターを設定しないと、OSS はデフォルトで現在のバケットにファイルを抽出します。
  5. Function Compute を有効にし、Function Compute を使用して ZIP ファイルを処理することに同意します。: ZIP ファイルの解凍は付加価値サービスです。処理中、Function Compute は解凍時間に基づいて課金を計算します。詳細については、課金方法をご参照ください。

トリガーを編集する

トリガーを変更するには、次の図に示すように、必要なトリガーの横にある [トリガーの編集] をクリックして、トリガーを編集するためのページに移動します。

003

トリガーイベント、プレフィックス、およびサフィックスを編集できます。通常のサービスロジックを保証するために、サフィックスに基づいて関数が作成されているため、サフィックスを変更しないことを推奨します。

解凍先ディレクトリを編集する

ファイルを抽出するディレクトリを編集するには、[概要] ページの [関数プロパティ] にある [編集] をクリックします。次に、以下の図に示すように、表示される [基本設定] ダイアログボックスで環境変数を変更します。004

トリガーを削除する

OSS コンソールでトリガーを削除するには、ターゲットトリガーの横にある [トリガーの編集] をクリックして、トリガーを編集するためのページに移動します。次に、[削除] をクリックしてトリガーを削除します。OSS で ZIP ファイルを解凍できないようにするために、対応する関数を削除することを推奨します。

関数を拡張する

Function Compute は、OSS コンソールで ZIP ファイルを解凍できるようにするシステム関数を生成します。必要に応じて関数コードを変更できます。たとえば、小さな ZIP ファイルは処理時間がほとんどないため、コストを節約するためにメモリを少なくすることができます。同様に、1 GB を超える ZIP ファイルの場合は、タイムアウトの発生を最小限に抑えるために、より長いタイムアウトを設定することを推奨します。ZIP ファイルに加えて他の種類のファイルを解凍するために、関数を拡張できます。現在、Function Compute はデフォルトとして、Python 2.7 で関数をサポートしています。