Ossutil では、ファイルのアップロード / ダウンロード / コピー、オブジェクトの ACL とメタの設定、およびオブジェクトのメタ情報の表示を行うことができます。

前述のコマンドを実行する前に、config コマンドを実行し、AccessKey ペアを設定します。

ファイルのアップロード / ダウンロード / コピー

cp コマンドを実行する前に、ossutil help cp を実行し、ヘルプ情報を表示することを強く推奨します。

ファイルをアップロード / ダウンロード / コピーするため、cp コマンドを実行する際は下記を参照してくだい。:
  • フォルダをコピーするには、-r オプションを使用します。 Ossutil は、既定では大きなファイルに対してマルチパートアップロードを実装しており、再開可能なデータ転送をサポートしています (マルチパートアップロードが有効になっている大きなファイルのしきい値は、--bigfile-threshold オプションを使用して設定します)。
  • 既定の設定で、ファイルを強制的にアップロードするには、-f オプションを使用します。 アップロード先に同じ名前のファイルが存在する場合、そのファイルは直接上書きれます。
ファイルをアップロード、ダウンロード、またはバッチ内でコピーしたときにファイルに関するエラーが発生した場合、ossutil は エラーをレポートファイルに記録、ファイルをスキップし、既定の設定では、その他のファイルに対して操作を実行します。 詳しくは、「ossutil help cp」を参照してくだい。
バケットが存在しない場合、または AccessKeyID または AccessKeySecret が正しくないために権限の検証結果が無効である場合、Ossutil はその他のファイルのコピーを続行しません。

Ossutil は、増分アップロードポリシー --update --snapshot-path を、特定のシナリオでサポートしています。 詳しくは、「ossutil help cp」を参照してくだ

ossutil 1.0.0。ossutil 1.0.0.Beta1 から、既定では、ファイルのアップロード中は crc64 が有効になっています。

  • 1 つのファイルをアップロード
    $./ossutil cp a oss://ossutil-test
    Succeed: Total num: 1, size: 230. OK num: 1(upload 1 files).
    0.699795(s) elapsed
  • フォルダをアップロード
    $./ossutil cp -r dir oss://ossutil-test
    Succeed: Total num: 35, size: 464,606. OK num: 35(upload 34 files, 1 directories).
    0.896320(s) elapsed

Ossutil 1.4.2 以降のバージョンでは、要求者支払いモードが有効になっている、バケットに格納されたオブジェクトのアップロード、ダウンロード、およびコピーをサポートしています。

  • 次のコマンドを実行し、要求者支払いモードが有効になっているバケットにファイルをアップロードします。
    ./ossutil cp ~/Downloads/test.mp4 oss://payer/ --payer=requester
  • 次のコマンドを実行し、要求者支払いモードが有効になっているバケットからオブジェクトをダウンロードします。
    ./ossutil cp oss://payer/test.mp4 ~/Downloads/ --payer=requester
  • 次のコマンドを実行し、要求者支払いモードが有効になっているバケットから、通常のバケットにオブジェクトをコピーします。
    ./ossutil cp oss://payer/test.mp4 oss://hello-hangzws/  --payer=requester
  • 次のコマンドを実行し、通常のバケットから要求者支払いモードが有効になっているバケットにデータをコピーします。
    ./ossutil cp oss://hello-hangzws/test.mp4 oss://payer/ --payer=requester

オブジェクトのストレージクラスを変更

5 GB 以下のオブジェクトのストレージクラスを変更するには、set-meta コマンドを実行します。 5 GB を超えるオブジェクトのストレージクラスを変更するには、cp コマンドを実行します。

  • set-meta コマンドを実行すると、オブジェクトのストレージクラスを変更できます。
    • 次のコマンドを実行して、1 つのオブジェクトのストレージクラスを IA に設定します。
      ./ossutil set-meta oss://hello-hangzws/0104_6.jpg X-Oss-Storage-Class:IA -u
    • 次のコマンドを実行して、フォルダ内のすべてのオブジェクトのストレージクラスを Standard に設定します。
      ./ossutil set-meta oss://hello-hangzws/abc/ X-Oss-Storage-Class:Standard -r -u
  • --meta オプションを使用してオブジェクトのストレージクラスを変更しつつ、cp コマンドを実行してオブジェクトをアップロードします。
    • 次のコマンドを実行して 1 つのファイルをアップロードし、そのファイルのストレージクラスを IA に設定します。
      ossutil cp ~/Downloads/sys.log  oss://hello-hangzws/test/ --meta X-oss-Storage-Class:IA
    • 次のコマンドを実行してフォルダをアップロードし、そのフォルダ内のすべてのファイルのストレージクラスを IA に設定します。
      ./ossutil cp ~/libs3/ oss://hello-hangzws/test/ --meta X-oss-Storage-Class:IA -r
    • 次のコマンドを実行して、既存のオブジェクトのストレージクラスを Archive に変更します。
      ./ossutil cp oss://hello-hangzws/0104_6.jpg oss://hello-hangzws/0104_6.jpg --meta X-oss-Storage-Class:Archive
    • 次のコマンドを実行して、既存のフォルダ内のすべてのオブジェクトのストレージクラスを Standard に変更します。
      ./ossutil cp oss://hello-hangzws/test/ oss://hello-hangzws/test/ --meta X-oss-Storage-Class:Standard -r
    重要
    • set-meta または cp コマンドを実行し、オブジェクトのストレージクラスを Archive から他のクラスに変更することはできません。 最初に restore コマンドを実行し、オブジェクトのストレージクラスを IA に変更してから、set-meta コマンドまたは cp コマンドを実行し、オブジェクトのストレージクラスを他のクラスに変更する必要があります。
    • オブジェクトを上書きするため、 cp コマンドを実行した際にオブジェクトが上書きされたと見なされ、課金される場合があります。 IA クラスまたは Archive クラスのオブジェクトは、作成後 30 日および 60 日以内に別々に上書きされた場合、課金されます。 たとえば、オブジェクトの作成から 10 日後に cp コマンドを実行し、オブジェクトのストレージクラスを IA から Archive、または Standard に変更した場合、20 日間の早期削除料金が発生します。

ファイルのアップロード、ダウンロード、またはコピーのためのパフォーマンスのチューニング

cp コマンドでは、 --jobs および --parallel オプションを使用し、並行操作数を制御します。 ossutil によって設定された既定の同時操作数がパフォーマンス要件を満たせない場合、2 つのオプションの値を変更し、パフォーマンスを調整することができます。
  • --jobs オプションは、複数のファイルがアップロード、ダウンロード、またはコピーされたとき、ファイル間で有効な同時操作数を制御します。
  • --parallel オプションは、大きなファイルがマルチパートメソッドでアップロード / ダウンロード / コピーされたときに、サイズのファイルに対して有効な同時操作の数を制御します。

既定では、ossutil はファイルサイズに基づき、同時操作数を計算します (このオプションは小さなファイルでは機能せず、マルチパート方式によりアップロード / ダウンロード / コピーする大きなファイルのしきい値を --bigfile -threshold オプションで制御することができます)。 大きなファイルを一括でアップロード / ダウンロード / コピーする場合、実際の同時操作数は、ジョブ数に並列操作数を掛けて計算されます。

警告
  • ECS インスタンスまたはサーバーのリソース (ネットワーク帯域幅、メモリ、CPU など) が限られている場合は、同時操作数を 100 未満の値に調整することを推奨します。 リソースに余裕がある場合は、同時操作数を増やすことを試すことができます。
  • ただし、実行されている同時操作が多すぎると、ossutil のアップロード、ダウンロード、およびコピーのパフォーマンスが低下したり、スレッド間でのリソースの交換やスナッチのため、EOF エラーが発生する可能性があります。 この問題を解決するには、実際の条件に基づき、-jobs--parallel の値を調整する必要があります。 圧力テストを実行するには、最初に 2 つのオプションを小さい値に設定し、ゆっくりと最適値に調整していきます。

オブジェクトの管理

  • オブジェクトの ACL の設定

    Ossutil では、set-acl コマンドを使用して、オブジェクトの ACL を設定します。 -r オプションを使用することで、オブジェクトの ACL を一括で設定できます。 詳しくは、「ossutil help set-acl」をご参照ください。

    $./ossutil set-acl oss://dest/a private
    0.074507(s) elapsed

    オブジェクトの ACL を一括で設定する

    $./ossutil set-acl oss://dest/a private -r
    Do you really mean to recursivelly set acl on objects of oss://dest/a(y or N)? y
    Succeed: Total 3 objects. Setted acl on 3 objects.
    0.963934(s) elapsed
  • オブジェクトのメタの設定

    Ossutil では set-meta コマンドを使用し、オブジェクトのメタ情報を設定します。 -r オプションを使用することで、オブジェクトのメタを一括で設定できます。 詳しくは、ossutil help set-meta をご参照ください。

    ./ossutil set-meta oss://dest/a x-oss-object-acl:private -u
  • オブジェクトのメタに関する説明の表示

    Ossutil では、stat コマンドを使用して、オブジェクトのメタの説明を表示します。 詳しくは、ossutil help stat をご参照ください。

    $./ossutil stat oss://dest/a 
    ACL                         : default
    Accept-Ranges               : bytes
    Content-Length              : 230
    Content-Md5                 : +5vbQC/MSQK0xXSiyKBZog==
    Content-Type                : application/octet-stream
    Etag                        : FB9BDB402FCC4902B4C574A2C8A059A2
    Last-Modified               : 2017-01-13 15:14:22 +0800 CST
    Owner                       : aliyun
    X-Oss-Hash-Crc64ecma        : 12488808046134286088
    X-Oss-Object-Type           : Normal
    0.125417(s) elapsed
  • オブジェクトを凍結状態から読み取り可能な状態に復元

    Ossutil では、オブジェクトを凍結状態から読み取り可能な状態に復元するため、restore コマンドを使用します。 -r オプションを使用することで、オブジェクトを凍結状態から読み取り可能な状態に一括で復元できます。 詳しくは、ossutil help restore を実行してください。

    $./ossutil restore oss://utiltest/a
    0.037729(s) elapsed
  • シンボリックリンクの作成

    Ossutil では、create-symlink コマンドを使用して、シンボリックリンクを作成します。 詳しくは、ossutil help create-symlink を実行してください。

    $./ossutil create-symlink oss://utiltest/b a
    0.037729(s) elapsed
  • シンボリックリンクファイルに関する説明の読み取り

    Ossutilでは、read-symlink コマンドを使用することで、シンボリックリンクファイルの説明を読み取ります。 詳しくは、ossutil help read-symlink を実行してください。

    $./ossutil read-symlink oss://utiltest/b
    Etag                    : D7257B62AA6A26D66686391037B7D61A
    Last-Modified           : 2017-04-26 15:34:27 +0800 CST
    X-Oss-Symlink-Target    : a
    0.112494(s) elapsed