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 |
Sets the metadata for the object. The format is |
|
--acl |
The access control list (ACL) of the object. Valid values:
|
|
--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, --job および --parallel オプションを調整してパフォーマンスをチューニングできます。デフォルトでは、ossutil はオブジェクトサイズに基づいて並列数を計算します。大きなオブジェクトをバッチで転送する場合、実際の並列度はジョブ数に並列数を掛けた値になります。
-
コマンドを実行する ECS インスタンスまたはサーバーのリソース (ネットワーク、メモリ、CPU など) が限られている場合は、並列度を 100 未満の値に設定することを推奨します。これらのリソースに余裕がある場合は、並列度を増やすことができます。
-
並列度を高く設定しすぎると、スレッド切り替えのオーバーヘッドやリソースの競合により、パフォーマンスが低下したり EOF エラーが発生したりする可能性があります。マシンのリソースに基づいて -j, --job および --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 オプションを使用して、2023 年 10 月 31 日 10:09:18 (UTC+8) から 2023 年 10 月 31 日 12:55:58 (UTC+8) の間に最終更新された destfolder ディレクトリ内のオブジェクトのみをダウンロードします。
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/ --snapshot-path local_snapshot_dir/
クロスアカウントまたはクロスリージョンのダウンロード
-e、-i、-k 共通オプションを使用して、別のアカウントが所有し、China (Shanghai) リージョンにあるバケットからオブジェクトをダウンロードします。
バケットが配置されているリージョンに対応するエンドポイントを指定します。詳細については、「リージョンとエンドポイント」をご参照ください。
ossutil cp oss://examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i yourAccessKeyID -k yourAccessKeySecret