cp コマンドは、ローカルマシンと Object Storage Service (OSS) 間、または OSS 内でファイルやフォルダを転送します。アップロード、ダウンロード、コピーを処理し、同時転送と再開可能転送をサポートします。
cp コマンドを使用する前に、ossutil をインストールして設定していることを確認してください。
注記
オブジェクトをアップロード、ダウンロード、またはコピーする前に、アクセス資格情報に関連付けられている Resource Access Management (RAM) ユーザーまたは RAM ロールに、宛先バケットおよびオブジェクトに対する必要な権限があることを確認してください。詳細については、「RAM ユーザーにカスタムポリシー権限を付与する」をご参照ください。
仕組み
ossutil cp コマンドは、ソースと宛先のパスタイプに基づいて、アップロード、ダウンロード、またはコピー操作を実行するかどうかを自動的に決定します。
cp コマンドを使用してファイルを転送すると、ossutil はファイルサイズに基づいて転送方法を自動的に選択します。
再開可能転送のしきい値より小さいファイルの場合、ossutil は標準の転送を実行します。このしきい値を設定するには、
--bigfile-thresholdオプションを使用できます。デフォルト値は 100 MB です。しきい値以上のファイルの場合、ossutil は再開可能転送を使用します。アップロードが中断された場合、転送されたデータはバケット内に一時的なパートとして保存されます。ストレージコストを回避するために、これらのパートを定期的にクリーンアップしてください。手動でパートを削除するか、ライフサイクルルールを設定して自動的に削除することができます。
再開可能転送が失敗した場合、ossutil はチェックポイント情報を保存するために、.ossutil_checkpoint という名前のフォルダを自動的に作成します。このフォルダは、転送が正常に完了した後に削除されます。また、--checkpoint-dir パラメーターを使用して、チェックポイント情報用のカスタムフォルダを指定することもできます。
オブジェクトのアップロード
cp (オブジェクトのアップロード) コマンドを使用して、ローカルリソースを指定された OSS バケットにアップロードできます。これらのリソースには、ファイル、イメージ、ビデオなどがあります。
単一オブジェクトのアップロード: 指定されたローカルパスからバケットにオブジェクトをアップロードします。
バッチでのオブジェクトのアップロード: フォルダ全体とそのすべてのコンテンツをアップロードします。
アップロードのフィルタリング:
--includeおよび--excludeオプションを使用して、アップロードするオブジェクトを制御できます。たとえば、.logファイルのみをアップロードしたり、すべての一時 (.tmp) ファイルを除外したりできます。
オブジェクトのダウンロード
cp (オブジェクトのダウンロード) コマンドを使用して、OSS からローカルマシンにリソースをダウンロードできます。複数のオブジェクトをダウンロードしたり、ダウンロード速度を制限したり、バージョン管理されたバケットからオブジェクトの特定のバージョンをダウンロードしたりできます。
単一オブジェクトのダウンロード: 指定されたオブジェクトをローカルマシンにダウンロードします。
バッチでのオブジェクトのダウンロード: バケットからローカルマシンにフォルダ構造全体をダウンロードします。
特定バージョンのダウンロード: バケットでバージョン管理が有効になっている場合、オブジェクトの特定のバージョンをダウンロードできます。
オブジェクトのコピー
cp (オブジェクトのコピー) コマンドを使用して、同じリージョン内の別のバケット、または同じバケット内の別のフォルダにオブジェクトをコピーできます。オブジェクトのコンテンツは変更されません。
バケット間のコピー: あるバケットから同じリージョン内の別のバケットにオブジェクトをコピーします。
バケット内でのコピー (移動/名前変更): 同じバケット内のあるフォルダから別のフォルダにオブジェクトをコピーします。このプロセスは、オブジェクトの移動や名前変更によく使用されます。この操作では、オブジェクトをコピーした後にソースオブジェクトを削除します。
ossutil cp コマンドは、クロスリージョンコピーを直接サポートしていません。異なるリージョンのバケット間でオブジェクトをコピーするには、クロスリージョンレプリケーション (CRR) 機能を使用できます。
本番環境での使用
同時パフォーマンスの調整
デフォルトの同時実行数がパフォーマンスのニーズを満たさない場合は、-j, --jobs および --parallel オプションを調整できます。デフォルトでは、ossutil はファイルサイズに基づいて parallel の値を計算します。バッチで large ファイルを転送する場合、実際の同時操作数は jobs の値 × parallel の値になります。
ECS インスタンスまたはサーバーのリソース (ネットワーク帯域幅、メモリ、CPU など) が限られている場合は、同時操作数を 100 未満の値に下げることができます。リソースが完全に使用されていない場合は、同時操作数を増やすことができます。
同時操作数が多すぎると、スレッドの切り替えオーバーヘッドやリソースの競合によりパフォーマンスが低下する可能性があります。これにより、End-of-File (EOF) エラーが発生することさえあります。マシンのリソースに基づいて -j, --jobs および --parallel オプションを調整できます。ストレステストを実行するときは、低い同時操作数から始めて、徐々に増やして最適な値を見つけます。
トラフィックシェーピング
--maxupspeed または --maxdownspeed パラメーターを使用して、アップロードまたはダウンロードの速度を制限できます。これにより、転送が帯域幅を過剰に消費するのを防ぎます。