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

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

最終更新日:Mar 19, 2024

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

重要

このトピックのサンプルコマンドラインは、64ビットLinuxシステムに基づいています。 他のシステムの場合は、を交換します。対応するバイナリ名を持つコマンドの /ossutil64。 詳細は、「ossutilコマンドリファレンス」をご参照ください。

コマンド構文

. /ossutil64 cp cloud_url file_url
[-r, -- recursive]
[-f -- force]
[-u -- 更新]
[-- maxdownspeed <value>]
[-- disable-無視-エラー]
[-- only-current-dir]
[-- bigfile-threshold <value>]
[-- part-size <value>]
[-- checkpoint-dir <value>]
[-- range <value>]
[-- encoding-type <value>]
[-- include <value>]
[-- exclude <value>]
[-- meta <value>]
[-- acl <value>]
[-- snapshot-path <value>]
[-- disable-crc64]
[-- payer <value>]
[-- partition-download <value>]
[-j, -- job <value>]
[-- parallel <value>]
[-- version-id <value>]
[-- start-time <value>]
[-- end-time <value>] 

次の表に、構文のパラメーターとオプションを示します。

パラメータ /オプション

説明

cloud_url

OSSオブジェクトのパス。 パス形式はoss:// bucketname/objectnameです。 例: oss:// examplebucket/examplefile.txt

ファイル_url

ローカルファイルのパス。 例: Linuxの場合は /localfolder/examplefile.txt、Windowsの場合はD:\localfolder\examplefile.txt

-r, -- recursive

再帰を指定します。 このオプションを指定すると、指定された条件を満たすバケット内のすべてのオブジェクトに対して操作が実行されます。 このオプションを指定しない場合、指定されたオブジェクトに対してのみ操作が実行されます。

-f -- 力

確認を必要とせずに操作を強制します。

-u, -- update

ターゲットファイルがローカルデバイスに存在しない場合、またはソースオブジェクトの最終変更時刻がターゲットファイルの最終変更時刻よりも遅い場合にのみ、ossutilがOSSからオブジェクトをダウンロードするように指定します。

-- maxdownspeed

最大ダウンロード速度。 単位: KB/s。 デフォルト値は0で、ダウンロード速度が無制限であることを示します。

-- disable-無視-エラー

バッチ操作中にエラーが無視されないように指定します。

-- only-current-dir

現在のディレクトリ内のオブジェクトのみをダウンロードするように指定します。 現在のディレクトリ内のサブディレクトリおよびこれらのサブディレクトリ内のオブジェクトはダウンロードされません。

-- bigfile-threshold

再開可能ダウンロードを使用するためのオブジェクトサイズのしきい値。 オブジェクトのサイズが指定されたオブジェクトサイズのしきい値を超える場合、オブジェクトは再開可能ダウンロードを使用してダウンロードされます。 単位:バイト

デフォルトのオブジェクトサイズのしきい値は100 MBです。

有効な値: 0 ~ 9223372036854775807

-- 部分サイズ

部品サイズ。 単位:バイト デフォルトでは、ossutilはオブジェクトサイズに基づいて部品サイズを決定します。

有効な値: 1 ~ 9223372036854775807

-- checkpoint-dir

再開可能ダウンロードタスクのチェックポイント情報を格納するディレクトリを指定します。 タスクが失敗すると、ossutilは自動的にという名前のディレクトリを作成します。ossutil_checkpointし、チェックポイント情報をディレクトリに保存します。 タスクが成功すると、ossutilはディレクトリを削除します。 チェックポイントディレクトリを指定する場合は、ディレクトリを削除できることを確認してください。

-- 範囲

特定の範囲のオブジェクトコンテンツをダウンロードし、新しいファイルとして宛先ローカルパスに保存することを指定します。 範囲の最小開始値は0で、オブジェクトのコンテンツのバイト0を示します。 このオプションの値は、次のいずれかの形式で指定できます。

  • 開始値と終了値を持つ範囲

    例えば、3 − 9の値は、バイト3からバイト9までの範囲を示す。

  • 開始値

    たとえば、3- の値は、バイト3からオブジェクトの最後までの範囲を示します。

  • 終了値

    たとえば、-9の値は、バイト0からバイト9までの範囲を示します。

-- encoding-type

オブジェクトの名前をエンコードするために使用されるメソッド。 このオプションを指定する場合は、値をurlに設定します。 このオプションを指定しない場合、オブジェクトの名前はエンコードされません。

-含める

指定された条件を満たすすべてのオブジェクトを含みます。

詳細については、「Options -- include and -- exclude」をご参照ください。

-除外

指定された条件を満たすすべてのオブジェクトを除外します。

詳細については、「Options -- include and -- exclude」をご参照ください。

-メタ

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

-- acl

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

  • デフォルト: オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。 これは、オブジェクトのデフォルトのACL設定です。

  • private: バケット内のオブジェクトに対して読み書き操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。

  • public-read: バケット内のオブジェクトに対して読み書き操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 オブジェクトACLをpublic-readに設定する場合は注意してください。

  • public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高コストが発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、正当な利益と権利が侵害される可能性があります。 必要な場合を除き、ACLをpublic-read-writeに設定しないことをお勧めします。

-- snapshot-path

ダウンロードしたオブジェクトのスナップショットを保存するディレクトリを指定します。 次のダウンロードタスクでは、ossutilはこのディレクトリのスナップショットを読み取り、増分オブジェクトのみをダウンロードします。

-- disable-crc64

CRC-64検証を無効にします。 デフォルトでは、ossutilはデータ送信中にCRC-64を有効にします。

-- 支払人

リクエストの支払人。 指定したパスのリソースにアクセスするリクエスタにトラフィックとリクエスト料金を支払う場合は、このパラメーターをrequesterに設定します。

-- partition-download

ダウンロードするパーティション。 このオプションの値は、[ダウンロードするパーティションの数: パーティションの合計数] 形式です。 たとえば、値1:5は、オブジェクトが5つのパーティションに分割され、現在のコマンドがパーティション1をダウンロードすることを指定します。 パーティションは1から始まる番号が付けられます。 オブジェクトのパーティショニングルールは、組み込みアルゴリズムに基づいてossutilによって決定されます。 このオプションは、オブジェクトを複数のパーティションに分割し、複数のossutilコマンドで同時にダウンロードできます。 各ossutilコマンドは、独自のパーティションをダウンロードします。

-j, -- job

複数のオブジェクトで実行できる同時タスクの数。 有効な値: 1 ~ 10000 デフォルト値: 3。

-- 平行

1つのオブジェクトに対して実行できる同時タスクの数。 有効な値: 1 ~ 10000 このオプションを設定しない場合、ossutilは操作タイプとオブジェクトサイズに基づいて値を指定します。

-- version-id

ダウンロードするオブジェクトのバージョンID。 このオプションは、バージョン管理が有効になっているバケット内のオブジェクトに対してのみ使用できます。

-- 開始時間

最後に変更された時刻までにオブジェクトをフィルタリングする時間範囲の開始。 この値は UNIX タイムスタンプです。 最終変更時刻がUNIXタイムスタンプより前のオブジェクトは無視されます。

説明

ossutil V1.7.18以降のみがこのパラメータをサポートしています。 ossutilの更新方法の詳細については、「update」をご参照ください。

-終了時間

最後に変更された時刻までにオブジェクトをフィルタリングする時間範囲の終わり。 この値は UNIX タイムスタンプです。 最後に変更された時刻がタイムスタンプより後のオブジェクトは無視されます。

説明
  • -- start-timeと -- end-timeの両方が指定されている場合、コマンドは、最後に変更された時刻が -- start-timeと -- end-timeで指定された範囲内にあるオブジェクトにのみ適用されます。

  • ossutil V1.7.18以降のみがこのパラメータをサポートしています。 ossutilの更新方法の詳細については、「update」をご参照ください。

デフォルトの同時実行値がパフォーマンス要件を満たさない場合は、-j、-- jobs-- parallelオプションを使用してパフォーマンスを調整できます。 デフォルトでは、ossutilはオブジェクトサイズに基づいて -- parallelの値を計算します。 複数のラージオブジェクトをダウンロードする場合、実際の同時タスク数は、-j, -- jobsの値に -- parallelの値を掛けたものになります。

  • ECSインスタンスまたはサーバーのネットワーク帯域幅、メモリ、CPUなどのリソースが制限されている場合は、同時タスク数を100未満の値に調整することを推奨します。 ネットワーク帯域幅、メモリ、CPUなどのリソースがアイドル状態のままである場合、同時実行タスクの数を増やすことができます。

  • 同時タスクの数が多すぎると、スレッドがリソースを切り替えて競合するため、ossutilのダウンロードパフォーマンスが低下する可能性があります。 さらに、EOF (end-of-file) エラーが発生することがある。 これらの問題を防ぐために、使用可能なリソースに基づいて -j、-- jobs-- parallelオプションの値を調整できます。 ストレステストを実行するには、最初に2つのオプションに小さな値を指定し、値を徐々に増やして最適な値を見つけることをお勧めします。

サンプル環境

このトピックでは、オブジェクトはOSSからLinuxのローカルディレクトリにダウンロードされます。 実際のビジネスシナリオでコマンドを使用するには、オペレーティングシステムと環境に基づいてサンプルコマンドのオプションとパラメーターの設定を変更する必要があります。 サンプル環境:

  • オペレーティングシステム: Linux

  • バケツ: examplebucket

  • バケット内のディレクトリ: destfolder

  • ローカルファイル: examplefile.txt (ルートディレクトリに格納)

  • ローカルディレクトリ: localfolder (ルートディレクトリ内)

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

ダウンロードしたオブジェクトの名前を指定しない場合、ダウンロードしたオブジェクトの名前は元のオブジェクトと同じになります。 ダウンロードしたオブジェクトの名前を指定した場合、ダウンロードしたオブジェクトは指定した名前を使用します。

  • 次のコマンドを実行して、ダウンロードしたオブジェクトを元のオブジェクトの名前で保存します。

    . /ossutil64 cp oss:// examplebucket/destfolder/examplefile.txt localfolder/
  • 次のコマンドを実行して、ダウンロードしたオブジェクトをカスタム名で保存します。

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

一度に複数のオブジェクトをダウンロードする

cpコマンドで複数のオブジェクト名を指定して、一度に複数のオブジェクトをダウンロードすることはできません。 ただし、cpコマンドを実行して、次の方法を使用して一度に複数のオブジェクトをダウンロードできます。

  • 特定のタイプのオブジェクトをダウンロードする

    名前に同じ接頭辞または接尾辞を持つオブジェクトなど、名前が特定のパターンを持つ複数のオブジェクトをダウンロードする場合は、-- includeおよび -- excludeオプションを使用して、特定の条件を満たすオブジェクトをダウンロードできます。

    • 次のコマンドを実行して、JPG形式以外のすべてのオブジェクトをダウンロードします。

      . /ossutil64 cp oss:// examplebucket/destfolder/ localfolder/ -- exclude "*.jpg" -r
    • 次のコマンドを実行して、名前にabcを含み、JPG形式またはTXT形式ではないすべてのオブジェクトをダウンロードします。

      . /ossutil64 cp oss:// examplebucket/destfolder/ localfolder/ -include "* abc *"-exclude "*.jpg"-exclude "*.txt" -r
  • ディレクトリとそのサブディレクトリをダウンロードする

    次のコマンドを実行して、ディレクトリ内のサブディレクトリを含むディレクトリ内のすべてのオブジェクトをダウンロードできます。

    . /ossutil64 cp -r oss:// examplebucket/destfolder/ localfolder/

    バッチダウンロードタスクが失敗した場合、または増分ダウンロードタスクを実行する場合は、-- updateオプションまたはその短縮形式 -uを使用して、ダウンロードされたオブジェクトをスキップできます。 オブジェクトがローカルファイルと同じ名前でない場合、またはオブジェクトが同じ名前のローカルファイルより後に最後に変更された場合、ossutilはオブジェクトをダウンロードします。 オブジェクトの名前がローカルファイルと同じで、同じ名前のローカルファイルがオブジェクトの最後に変更された場合、ossutilはオブジェクトをスキップします。 サンプルコマンド:

    . /ossutil64 cp -r oss:// examplebucket/destfolder/ localfolder/ -- update
  • ディレクトリのダウンロード (サブディレクトリを除く)

    現在のディレクトリのみをダウンロードし、そのサブディレクトリをダウンロードしない場合は、-- only-current-dirオプションを使用します。 サンプルコマンド:

    . /ossutil64 cp oss:// examplebucket/destfolder/ localfolder/ -- only-current-dir -r
  • ディレクトリのダウンロード (コマンドで指定されたタイムスタンプ付き)

    次のサンプルコマンドは、最終変更時刻が2023年10月31日10:09:18 (UTC + 8) から10月31日12:55:58 (UTC + 8) 2023の範囲内のオブジェクトをディレクトリとそのサブディレクトリからダウンロードします。

    . /ossutil64 cp -r oss:// examplebucket/destfolder/ localfolder/ -- 開始時間1698718158 -- 終了時間1698728158
  • バケットのルートディレクトリにあるすべてのオブジェクトをダウンロードする

    次のサンプルコマンドは、examplebucketという名前のバケットのルートディレクトリにあるすべてのオブジェクトをlocalfolder /という名前のローカルディレクトリにダウンロードします。

    . /ossutil64 cp -r oss:// examplebucket localfolder/

ダウンロード速度の制限

最大ダウンロード速度を制限するには、-- maxdownspeedオプションを指定します。 単位: KB/s。 サンプルコマンド:

  • 次のサンプルコマンドは、指定されたオブジェクトをOSSからダウンロードします。最大ダウンロード速度は1メガバイト/秒に制限されています。

    . /ossutil64 cp oss:// examplebucket/destfolder/examplefile.txt localfolder/ -- maxdownspeed 1024
  • 次のサンプルコマンドは、指定されたディレクトリをOSSからダウンロードします。最大ダウンロード速度は1メガバイト/秒に制限されています。

    . /ossutil64 cp -r oss:// examplebucket/destfolder/ localfolder/ -- maxdownspeed 1024

オブジェクトのコンテンツの範囲をダウンロードする

オブジェクトのコンテンツの範囲をダウンロードするには、-- rangeオプションを指定します。 たとえば、次のコマンドを実行して、examplefile.txtオブジェクトの10〜20文字目をローカルデバイスにファイルとしてダウンロードできます。

. /ossutil64 cp oss:// examplebucket/destfolder/examplefile.txt localfolder/ -- range=10-20
成功: 合計数: 1、サイズ: 11。 OK num: 1 (1オブジェクトをダウンロード) 。

一度に複数のオブジェクトをダウンロードし、スナップショット情報を生成する

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

. /ossutil64 cp -r oss:// examplebucket/destfolder/ localfolder/ -- snapshot-path=path

バージョン管理が有効なバケットから指定されたバージョンのオブジェクトをダウンロードする

バケットのバージョン管理を有効にすると、バケット内で上書きまたは削除されたオブジェクトは以前のバージョンとして保存されます。 cpコマンドで -- version-idオプションを指定して、指定したバージョンのオブジェクトをダウンロードできます。

. /ossutil64 cp oss:// my-bucket/test.jpg localfolder/ -- version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3MDRk
重要
  • オブジェクトのダウンロードに -- version-idオプションを使用するには、ls -- all-versionsコマンドを実行してオブジェクトのバージョンidを取得する必要があります。

  • -- version-idオプションをコマンドで指定すると、バージョン管理が有効なバケットからのみオブジェクトをダウンロードできます。 バケットのバージョン管理を有効にする方法の詳細については、「バケットバージョン管理」をご参照ください。

一般的なオプション

ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKeyシークレットを指定します。

説明

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

たとえば、次のコマンドを実行して、別のAlibaba Cloudアカウントが所有し、中国 (上海) リージョンにあるexamplebucketバケットのルートディレクトリにあるexampleobject.txtオブジェクトをlocalfolderという名前のローカルディレクトリにダウンロードできます。

. /ossutil64 cp oss:// examplebucket/exampleobject.txt localfolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****

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