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

Object Storage Service:cp (オブジェクトのダウンロード)

最終更新日:Nov 09, 2025

cp コマンドを使用して、ファイル、イメージ、ビデオなどのリソースを Object Storage Service (OSS) からローカルコンピューターにダウンロードします。このコマンドを使用すると、複数のオブジェクトをダウンロードしたり、ダウンロード速度を制限したり、バージョン管理が有効なバケットから特定のバージョンのオブジェクトをダウンロードしたりできます。

使用上の注意

  • ossutil 1.6.16 以降、オペレーティングシステムに関係なく、コマンドラインでバイナリ名として ossutil を使用できます。1.6.16 より前のバージョンを使用している場合は、オペレーティングシステムに合わせてバイナリ名を変更する必要があります。詳細については、「ossutil コマンドリファレンス」をご参照ください。

    権限

    デフォルトでは、Alibaba Cloud アカウントはそのリソースに対する完全な権限を持っています。Resource Access Management (RAM) ユーザーまたは RAM ロールは、デフォルトでは権限を持ちません。RAM ポリシーまたはバケットポリシーを使用して、RAM ユーザーまたは RAM ロールに権限を付与する必要があります。

    API アクション

    説明

    oss:GetObject

    オブジェクトのダウンロードに必要です。

    oss:GetObjectVersion

    オプション。--version-id オプションを使用してソースオブジェクトの特定のバージョンをダウンロードする場合に必要です。

    kms:GenerateDataKey

    オプション。ダウンロードするオブジェクトがサーバー側で KMS を使用して暗号化されている場合に必要です。

    kms:Decrypt

    oss:ListObjects

    オプション。バッチダウンロード (再帰的な操作) に必要です。

    構文

    ossutil cp cloud_url file_url [options]

    パラメーター

    説明

    cloud_url

    OSS オブジェクトのソースパス。フォーマットは oss://bucket[/prefix] です。例: oss://examplebucket/examplefile.txt

    file_url

    ローカルファイルの宛先パス。宛先がディレクトリの場合、パスは区切り文字 (/ または \) で終わる必要があります。たとえば、Linux パスは /localfolder/examplefile.txt で、Windows パスは D:\localfolder\examplefile.txt です。

    -r, --recursive

    指定されたプレフィックスの下にあるすべての一致するオブジェクトに操作を再帰的に適用します。それ以外の場合、操作は指定された単一のオブジェクトにのみ適用されます。

    -f --force

    確認のプロンプトを表示せずに操作を強制します。

    -u,--update

    宛先ファイルが存在しない場合、またはソースオブジェクトの最終更新時刻が宛先ファイルの最終更新時刻より新しい場合にのみダウンロードを実行します。

    --maxdownspeed

    最大ダウンロード速度 (KB/s)。デフォルト値は 0 で、速度制限がないことを意味します。

    --disable-ignore-error

    バッチ操作中にエラーを無視する機能を無効にします。

    --only-current-dir

    現在のディレクトリ内のオブジェクトのみをダウンロードし、サブディレクトリとその中のオブジェクトは無視します。

    --bigfile-threshold

    再開可能なダウンロードのサイズしきい値 (バイト単位)。

    デフォルト: 100 MB

    値の範囲: 0~9223372036854775807

    --part-size

    パートサイズ (バイト単位)。デフォルトでは、ossutil はオブジェクトサイズに基づいて適切なパートサイズを自動的に計算します。

    値の範囲: 1~9223372036854775807

    --checkpoint-dir

    ossutil が再開可能なダウンロードのチェックポイント情報を保存するディレクトリ。再開可能なダウンロードが失敗した場合、ossutil は .ossutil_checkpoint ディレクトリを作成してチェックポイント情報を記録します。ダウンロードが成功すると、ossutil はこのディレクトリを削除します。指定したディレクトリが削除可能であることを確認してください。

    --range

    オブジェクトの指定されたバイト範囲をダウンロードし、新しいファイルとして保存します。バイト番号は 0 から始まります。

    • 範囲を指定する

      たとえば、3-9 は、3 バイト目から 9 バイト目まで (両端を含む) をダウンロードします。

    • 開始位置を指定する

      たとえば、3- は、3 バイト目からオブジェクトの最後まで (両端を含む) をダウンロードします。

    • 終了位置を指定する

      たとえば、-9 は、0 バイト目から 9 バイト目まで (両端を含む) をダウンロードします。

    --encoding-type

    オブジェクト名のエンコーディングタイプ。このオプションを url に設定します。このオプションが指定されていない場合、オブジェクト名はエンコードされません。

    --include

    指定されたパターンに一致するすべてのオブジェクトを含めます。

    詳細については、「include および exclude オプション」をご参照ください。

    --exclude

    指定されたパターンに一致するすべてのオブジェクトを除外します。

    詳細については、「include および exclude オプション」をご参照ください。

    --meta

    オブジェクトのメタデータを設定します。フォーマットは header:value#header:value です。例: Cache-Control:no-cache#Content-Encoding:gzip。メタデータの詳細については、「set-meta (オブジェクトのメタデータの管理)」をご参照ください。

    --acl

    オブジェクトのアクセス制御リスト (ACL)。有効な値:

    • default (デフォルト): オブジェクトはバケットの ACL を継承します。

    • private: バケットのオーナーのみが読み取りおよび書き込み権限を持ちます。他のユーザーはバケット内のオブジェクトにアクセスできません。

    • public-read: バケットのオーナーのみが書き込み権限を持ちます。匿名ユーザーを含む他のすべてのユーザーは、バケット内のオブジェクトに対して読み取り専用権限を持ちます。これにより、データ漏洩や料金の増加につながる可能性があります。この ACL は注意して使用してください。

    • public-read-write: 匿名ユーザーを含む誰もがバケット内のオブジェクトを読み書きできます。これにより、データ漏洩、料金の増加、悪意のあるコンテンツがアップロードされた場合の潜在的な法的責任につながる可能性があります。特定のユースケースを除き、公開読み書き権限を設定しないでください。

    --snapshot-path

    ダウンロード中にスナップショット情報が保存されるディレクトリ。次回のダウンロードでは、ossutil はこのディレクトリからスナップショット情報を読み取り、増分ダウンロードを実行します。

    --disable-crc64

    64 ビット巡回冗長検査 (CRC-64) を無効にします。デフォルトでは、ossutil はすべてのデータ転送で CRC-64 を有効にします。

    --payer

    リクエストの支払方法。指定されたパスへのアクセスから生成されるトラフィックとリクエストの料金をリクエスタに支払わせるには、このオプションを requester に設定します。

    --partition-download

    ダウンロードするオブジェクトのパーティションを指定します。値は パーティション番号:合計パーティション数 のフォーマットです。たとえば、1:5 は、この ossutil コマンドが合計 5 つのパーティションのうちパーティション 1 をダウンロードすることを示します。パーティション番号は 1 から始まります。ツールの内部アルゴリズムによって、ossutil がオブジェクトをどのようにパーティション分割するかが決まります。このオプションを使用すると、オブジェクトを複数のパーティションに分割し、複数の ossutil コマンドを使用して並行してダウンロードできます。各コマンドは、割り当てられたパーティションをダウンロードします。

    -j,--job

    複数オブジェクト操作の同時タスク数。デフォルト: 3。値の範囲: 1~10,000。

    --parallel

    単一オブジェクト操作の同時タスク数。値の範囲: 1~10,000。このオプションが設定されていない場合、ossutil は操作タイプとオブジェクトサイズに基づいて値を決定します。

    --version-id

    オブジェクトの特定のバージョンをダウンロードします。--version-id オプションは、バージョン管理が有効なバケットでのみ使用してください。バケットのバージョン管理を有効にする方法の詳細については、「bucket-versioning (バージョン管理)」をご参照ください。

    --start-time

    UNIX タイムスタンプ。このオプションを指定すると、最終更新時刻がこのタイムスタンプより前のオブジェクトは無視されます。

    説明

    ossutil 1.7.18 以降のみがこのパラメーターをサポートします。スペックアップの詳細については、「update (ossutil のスペックアップ)」をご参照ください。

    --end-time

    UNIX タイムスタンプ。このオプションを指定すると、最終更新時刻がこのタイムスタンプより後のオブジェクトは無視されます。

    説明
    • `start-time` と `end-time` の両方を指定した場合、copy コマンドは指定された開始時刻と終了時刻の間に最終更新されたファイルに対してのみ実行されます。

    • ossutil 1.7.18 以降のみがこのパラメーターをサポートします。バージョンのスペックアップ方法の詳細については、「update (ossutil のスペックアップ)」をご参照ください。

    このコマンドの他の共通オプションの詳細については、「共通オプション」をご参照ください。

    デフォルトの同時実行数がパフォーマンスのニーズを満たさない場合は、-j, --jobs および --parallel オプションを調整してパフォーマンスをチューニングできます。デフォルトでは、ossutil はオブジェクトサイズに基づいて並列数を計算します。ラージオブジェクトをバッチで転送する場合、実際の同時実行数はジョブ数に並列数を掛けたものになります。

    • コマンドを実行する ECS インスタンスまたはサーバーのリソース (ネットワーク、メモリ、CPU など) が限られている場合は、同時実行数を 100 未満の値に設定することをお勧めします。これらのリソースが完全に使用されていない場合は、同時実行数を増やすことができます。

    • 同時実行数を高く設定しすぎると、スレッドの切り替えオーバーヘッドやリソースの競合により、パフォーマンスが低下したり、EOF エラーが発生したりする可能性があります。マシンのリソースに基づいて -j, --jobs および --parallel オプションを調整できます。ストレステストを実行するときは、低い同時実行数値から始めて徐々に増やしていき、最適な設定を見つけます。

    以下の例は Linux システム用です。オペレーティングシステムと環境に合わせてパラメーターを調整する必要があります。例では、以下を想定しています。

    • バケット名: examplebucket

    • OSS ディレクトリ: destfolder/

    • ローカルディレクトリ: localfolder/

    • ローカルファイル: examplefile.txt

    単一オブジェクトのダウンロード

    • オブジェクトを指定されたディレクトリにダウンロードし、元の名前を保持する:

      ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/
    • オブジェクトを指定されたディレクトリにダウンロードし、example.txt に名前を変更する:

      ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/example.txt

    バッチダウンロード

    • -r オプションを使用して、destfolder ディレクトリを、そのすべてのサブディレクトリとオブジェクトを含めてダウンロードします。

      ossutil cp -r oss://examplebucket/destfolder/ localfolder/
    • --only-current-dir オプションを使用して、現在のディレクトリ内のオブジェクトのみをダウンロードし、サブディレクトリは無視します。

      ossutil cp oss://examplebucket/destfolder/ localfolder/ --only-current-dir -r
    • -u オプションを使用して、ローカルに存在しないか、OSS で更新されたオブジェクトのみをダウンロードします。このオプションは、同じ名前と最終更新時刻を持つローカルファイルが既に存在する場合、オブジェクトのダウンロードをスキップします。

      ossutil cp -r -u oss://examplebucket/destfolder/ localfolder/

    条件付きオブジェクトのダウンロード

    • destfolder ディレクトリから JPG フォーマットではないすべてのオブジェクトをダウンロードします:

      ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --exclude "*.jpg"
    • destfolder ディレクトリから、名前に abc を含むが、JPG または TXT フォーマットではないオブジェクトをダウンロードします:

      ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --include "*abc*" --exclude "*.jpg" --exclude "*.txt"

    ダウンロード速度の制限

    --maxdownspeed オプションを使用して、ダウンロード速度を 1 MB/s (1,024 KB/s) に制限します。

    ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --maxdownspeed 1024

    範囲のダウンロード

    --range オプションを使用して、examplefile.txt の 10 バイト目から 20 バイト目までをローカルコンピューターにダウンロードします。

    ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/ --range 10-20

    指定された時間範囲内のオブジェクトのダウンロード

    --start-time および --end-time オプションを使用して、destfolder ディレクトリ内で、2023 年 10 月 31 日 10:09:18 (UTC+8) から 2023 年 10 月 31 日 12:55:58 (UTC+8) の間に最終更新されたオブジェクトのみをダウンロードします。

    ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158

    オブジェクトの特定バージョンのダウンロード

    まず、ls --all-versions コマンドを使用してオブジェクトのすべてのバージョン ID を取得します。次に、--version-id オプションを使用して特定のバージョンをダウンロードします。

    説明

    --version-id オプションは、バージョン管理が有効なバケット内のオブジェクトに対してのみ使用できます。バケットのバージョン管理を有効にする方法の詳細については、「bucket-versioning (バージョン管理)」をご参照ください。

    ossutil cp oss://examplebucket/test.jpg localfolder/ --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk

    オブジェクトのダウンロードとスナップショット情報の生成

    --snapshot-path オプションを使用して、ダウンロードされたオブジェクトのスナップショット情報を指定されたディレクトリに生成します。このオプションを使用して後続のダウンロードコマンドを実行すると、ossutil はディレクトリからスナップショット情報を読み取り、増分ダウンロードを実行します。詳細については、「オブジェクトをアップロードしてスナップショットを生成する」をご参照ください。

    ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --start-time 1698718158 --end-time 1698728158

    クロスアカウントまたはクロスリージョンのダウンロード

    -e-i、および -k 共通オプションを使用して、別のアカウントが所有し、中国 (上海) リージョンにあるバケットからオブジェクトをダウンロードします。

    説明

    バケットが配置されているリージョンに対応する Endpoint を指定します。詳細については、「リージョンとエンドポイント」をご参照ください。

    ossutil cp oss://examplebucket/exampleobject.txt  localfolder/  -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret