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 アクション | 説明 |
| オブジェクトのダウンロードに必要です。 |
| オプション。 |
| オプション。ダウンロードするオブジェクトがサーバー側で KMS を使用して暗号化されている場合に必要です。 |
| |
| オプション。バッチダウンロード (再帰的な操作) に必要です。 |
構文
ossutil cp cloud_url file_url [options]パラメーター | 説明 |
cloud_url | OSS オブジェクトのソースパス。フォーマットは |
file_url | ローカルファイルの宛先パス。宛先がディレクトリの場合、パスは区切り文字 (/ または \) で終わる必要があります。たとえば、Linux パスは |
-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 は |
--range | オブジェクトの指定されたバイト範囲をダウンロードし、新しいファイルとして保存します。バイト番号は 0 から始まります。
|
--encoding-type | オブジェクト名のエンコーディングタイプ。このオプションを url に設定します。このオプションが指定されていない場合、オブジェクト名はエンコードされません。 |
--include | 指定されたパターンに一致するすべてのオブジェクトを含めます。 詳細については、「include および exclude オプション」をご参照ください。 |
--exclude | 指定されたパターンに一致するすべてのオブジェクトを除外します。 詳細については、「include および exclude オプション」をご参照ください。 |
--meta | オブジェクトのメタデータを設定します。フォーマットは |
--acl | オブジェクトのアクセス制御リスト (ACL)。有効な値:
|
--snapshot-path | ダウンロード中にスナップショット情報が保存されるディレクトリ。次回のダウンロードでは、ossutil はこのディレクトリからスナップショット情報を読み取り、増分ダウンロードを実行します。 |
--disable-crc64 | 64 ビット巡回冗長検査 (CRC-64) を無効にします。デフォルトでは、ossutil はすべてのデータ転送で CRC-64 を有効にします。 |
--payer | リクエストの支払方法。指定されたパスへのアクセスから生成されるトラフィックとリクエストの料金をリクエスタに支払わせるには、このオプションを requester に設定します。 |
--partition-download | ダウンロードするオブジェクトのパーティションを指定します。値は |
-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 タイムスタンプ。このオプションを指定すると、最終更新時刻がこのタイムスタンプより後のオブジェクトは無視されます。 説明
|
このコマンドの他の共通オプションの詳細については、「共通オプション」をご参照ください。
デフォルトの同時実行数がパフォーマンスのニーズを満たさない場合は、-j, --jobs および --parallel オプションを調整してパフォーマンスをチューニングできます。デフォルトでは、ossutil はオブジェクトサイズに基づいて並列数を計算します。ラージオブジェクトをバッチで転送する場合、実際の同時実行数はジョブ数に並列数を掛けたものになります。
コマンドを実行する ECS インスタンスまたはサーバーのリソース (ネットワーク、メモリ、CPU など) が限られている場合は、同時実行数を 100 未満の値に設定することをお勧めします。これらのリソースが完全に使用されていない場合は、同時実行数を増やすことができます。
同時実行数を高く設定しすぎると、スレッドの切り替えオーバーヘッドやリソースの競合により、パフォーマンスが低下したり、EOF エラーが発生したりする可能性があります。マシンのリソースに基づいて -j, --jobs および --parallel オプションを調整できます。ストレステストを実行するときは、低い同時実行数値から始めて徐々に増やしていき、最適な設定を見つけます。
例
以下の例は Linux システム用です。オペレーティングシステムと環境に合わせてパラメーターを調整する必要があります。例では、以下を想定しています。
バケット名:
examplebucketOSS ディレクトリ:
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