すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトを ZIP ファイルとしてパッケージ化してダウンロードする

最終更新日:May 07, 2026

Object Storage Service (OSS) は Function Compute と統合されており、さまざまなアプリケーションや関数を構築できます。このトピックでは、Function Compute を使用して複数の OSS オブジェクトを単一の ZIP ファイルにパッケージ化し、ローカルにダウンロードする方法について説明します。

前提条件

仕組み

OSS から複数のオブジェクト(特に多数の小サイズファイル)を一括でダウンロードすると、処理が遅く不便です。Function Compute を使用することで、まず OSS 上でオブジェクトをパッケージ化し、圧縮済みパッケージをローカルコンピューターにダウンロードしてから展開できます。これにより、一括ダウンロードが高速化されます。Function Compute を使用して OSS オブジェクトをパッケージ化・ダウンロードするワークフローを次の図に示します。压缩OSS文件

  1. ユーザーが関数を呼び出し、圧縮対象のバケットおよびオブジェクトを指定します。

  2. Function Compute が OSS から指定されたオブジェクトをダウンロードし、ランダムな名前の ZIP パッケージを生成します。

  3. Function Compute が ZIP パッケージを OSS にアップロードします。

  4. Function Compute がユーザーに ZIP パッケージのダウンロード URL を返します。

  5. ユーザーは返された永続的なダウンロード URL を使用して OSS からファイルをダウンロードします。

注意事項

  • 関数の実行環境におけるディスク領域は制限されているため、関数はダウンロードおよびアップロード時にデータをストリーミング処理し、メモリ内に少量のデータのみをキャッシュします。

  • 処理を高速化するために、Function Compute は ZIP ファイルを生成しながら OSS にアップロードします。

  • ZIP ファイルを OSS にアップロードする際、関数は OSS のマルチパートアップロード機能を使用して、複数のスレッドでパーツを同時にアップロードします。

  • Function Compute を使用したファイル圧縮の最大処理時間は 24 時間です。(テストデータ:合計サイズ 1.06 GB の 57 個のオブジェクトを 63 秒で処理)

操作手順

この例では、中国 (杭州) リージョンの examplebucket バケット内の dir/ ディレクトリにある複数のオブジェクトを Function Compute を使用してパッケージ化し、ローカルコンピューターにダウンロードする方法について説明します。

  1. アプリケーションをデプロイし、パブリックドメイン名を取得します。

    ROS によるワンクリック

    Resource Orchestration Service (ROS) を使用して、Function Compute アプリケーションをワンクリックでデプロイします。

    1. ワンクリック設定テンプレートリンクを開きます。

    2. パラメーターの設定タブで、すべてのパラメーターをデフォルトのままにして、次へ:確認をクリックします。

    3. チェックと確認タブで、作成をクリックします。

      ステータス]が[スタック情報]タブに[作成中]と表示されます。

    4. スタックのステータスCreate_Successに変化したら、出力タブをクリックしてパブリックドメイン名を確認します。

    Serverless Application Center によるワンクリック

    1. Serverless Application Centerから start-zip-oss アプリケーションテンプレートをデプロイします。

      デプロイタイプとして、直接デプロイを選択します。アプリケーションテンプレートとバケットが同じリージョンにあることを確認し、その他のオプションはデフォルトのままにしてください。構成は次の図のとおりです。1

    2. パブリックドメイン名を取得します。

      1. 結果タブをクリックします。

      2. トリガーフィールドで、パブリックドメイン名 (urlInternet) を取得します。

        2

    マニュアル(Serverless Devs CLI を使用)

    1. Serverless Devs をインストールします。

      npm install -g @serverless-devs/s

      インストールを確認します。

      s -v

      次の出力が表示されれば、インストールは成功しています。

      @serverless-devs/s: 2.1.1, s-home: /root/.s, linux-x64, node-v14.19.3
    2. Serverless Devs を設定します。

      s config add --AccessKeyID LTAI******** --AccessKeySecret  KZo1******** --access fc-access

      次の表はパラメーターの説明です。

      パラメーター

      説明

      --AccessKeyID

      Function Compute へのアクセス用 AccessKey ID です。

      --AccessKeySecret

      Function Compute へのアクセス用 AccessKey Secret です。

      --access

      認証情報のカスタムエイリアスです。

    3. start-zip-oss アプリケーションテンプレートをデプロイします。

      1. プロジェクトを初期化します。

      2. s init start-zip-oss -d start-zip-oss
      3. 次の例に基づいて設定項目の値を指定します。

      4. パラメーター

        アプリケーションの配置リージョン

        cn-hangzhou

        アプリケーションが属する Function Compute サービス

        start-zip-oss

        アプリケーションの関数名

        zip-oss-func

        アプリケーションが属する Function Compute サービス用に設定された RAM ロールの ARN

        acs:ram::137918634953****:role/test-role

      5. プロジェクトディレクトリに移動します。

      6. cd start-zip-oss
      7. プロジェクトをデプロイします。

      8. s deploy -y
      9. 出力から system_url を記録します。

      10. fc-zip-oss-service:
          region:   cn-hangzhou
          service:
            name: start-zip-oss
          function:
            name:       zip-oss-func
            runtime:    python2.7
            handler:    main.main_handler
            memorySize: 3072
            timeout:    1800
          url:
            system_url: https://zip-oss-func-start-zip-oss-ayouye****.cn-hangzhou.fcapp.run
          triggers:
            -
              type: http
              name: http-test
  2. ご利用のサーバーまたは ECS インスタンス上で、次のコマンドを実行して event.json ファイルを生成します。このファイル内で、ダウンロード対象オブジェクトを含むバケット名およびディレクトリを指定します。

    cat <<EOF > event.json
    {
      "bucket": "examplebucket",
      "source-dir": "dir/"
    }
    EOF
    説明

    source-dir パラメーターはバケット内のディレクトリである必要があります。ルートディレクトリはサポートされていません。

  3. 次のコマンドはサンプルリクエストです。

    curl -v -L -o  oss.zip -d @./event.json https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run
    • oss.zip:ダウンロードされた ZIP パッケージを保存するローカルパスです。

      説明

      Windows 標準の解凍ツールで失敗する場合は、7-Zip や WinRAR などのサードパーティ製ツールをご使用ください。

    • https://zip-oss-func-zip-oss-ayouye****.cn-hangzhou.fcapp.run:プロジェクトデプロイ時に返された system_url です。

    匿名ではなく認証済みの HTTP 関数として呼び出すには、次のいずれかの SDK を使用します。

よくある質問

ウォーターマークの追加

いいえ。ただし、OSS 内のオブジェクトにテキストまたは画像のウォーターマークを追加するには、次の方法を使用できます。

  • 公開読み取りまたは公開読み書き権限を持つオブジェクトの場合

    オブジェクトの URL にウォーターマークパラメーターを追加します。詳細については、「画像ウォーターマーク」をご参照ください。

  • 非公開権限を持つオブジェクトの場合

    SDK に画像処理パラメーターまたは画像スタイルパラメーターを含めることでウォーターマークを追加します。詳細については、「SDK を使用した画像処理」をご参照ください。

期限付きダウンロード URL

いいえ。有効期限付きの URL を作成するには、Expires パラメーターを含む署名付き URL を生成する必要があります。詳細については、「オブジェクト URL の使用」をご参照ください。

参照