オブジェクトのコピーは、ファイルの内容を変更せずに、ソースバケットから同一リージョン内の送信先バケット、または同一バケット内の別のディレクトリにファイルを複製する操作です。この操作には、ossutil の cp コマンドを使用できます。
重要な注意事項
-
オブジェクトをコピーするには、
oss:GetObject、oss:ListObjects、およびoss:PutObject権限が必要です。詳細については、「RAM ユーザーへのカスタム権限ポリシーの付与」をご参照ください。 -
完全なオブジェクトのみコピー可能です。マージされていないマルチパートアップロードはサポートされていません。
-
デフォルトでは、タグとオブジェクト属性の両方がコピーされます。--copy-props オプションを使用して、コピー時の属性およびタグの処理方法を制御できます。
-
クロスアカウントおよびクロスリージョンのコピーはサポートされていません。アカウント間またはリージョン間でファイルを移行するには、ossimport または データオンライン移行 を使用してください。
-
-u、--updateオプションを使用すると、送信先ファイルが存在しない場合でも、各ファイルに対して少なくとも 1 回の HEAD リクエストが送信され、タイムスタンプが比較されます。データの変更が少ないシナリオでは、これにより多数の非効率なリクエストが発生し、パフォーマンスが低下したり、追加のリクエスト課金が発生したりする可能性があります。このオプションを有効にする前に、具体的なユースケースを慎重に評価し、不要なリソース消費を回避してください。
コマンド構文
ossutil cp oss://src_bucket[/src_prefix] oss://dest_bucket[/dest_prefix] [flags]
|
パラメーター |
タイプ |
説明 |
|
src_bucket |
string |
ソースバケットの名前。 |
|
src_prefix |
string |
ソースバケット内のディレクトリパスまたはプレフィックス。 |
|
dest_bucket |
string |
送信先バケットの名前。 |
|
dest_prefix |
string |
送信先バケット内のディレクトリパスまたはプレフィックス。 |
|
--acl |
string |
オブジェクトのアクセス制御レベル。有効な値:
|
|
--bandwidth-limit |
SizeSuffix |
ネットワーク帯域幅を制限してデータ転送速度を制御します。最小値は 1024 B/s です。デフォルト単位は B/s です。 このパラメーターを設定する際に単位を指定できます。サポートされる単位は、B(バイト)、K(キロバイト)、M(メガバイト)、G(ギガバイト)です。たとえば、50 M は 50 MB/s の制限を意味します。 |
|
--bigfile-threshold |
SizeSuffix |
大規模ファイルのマルチパートアップロード、ダウンロード、またはコピーを有効にするしきい値(バイト単位)。デフォルト値:104857600(100 MiB)。 |
|
--cache-control |
string |
Web ブラウザーによってオブジェクトがダウンロードされた際のキャッシュ動作を指定します。 |
|
--checkers |
int |
同時実行チェッカースレッド数。デフォルト:16。 |
|
--checkpoint-dir |
string |
再開可能な転送をサポートするためのチェックポイントデータを保存するディレクトリ。デフォルト: |
|
--checksum |
/ |
サイズまたはチェックサム(利用可能な場合)が送信先と異なるソースファイルのみをコピーします。オブジェクト間コピー操作でのみ適用されます。 |
|
--content-disposition |
string |
オブジェクトの表示形式を指定します。 |
|
--content-encoding |
string |
オブジェクトに使用されるエンコーディング方式を宣言します。 |
|
--content-type |
string |
オブジェクトの MIME タイプ。 |
|
--copy-props |
string |
オブジェクト間操作時にオブジェクトプロパティおよびタグのコピー方法を制御します。サポートされる値:
|
|
-d, --dirs |
string |
現在のディレクトリ内のファイルおよび直下のサブディレクトリを処理しますが、より深い階層のサブディレクトリは再帰的に走査しません。 |
|
--encoding-type |
string |
入力オブジェクトまたはファイル名のエンコーディングタイプ。有効な値:url。 |
|
--end-with |
string |
アルファベット順で指定値以前または一致するオブジェクトを返します。 |
|
--exclude |
stringArray |
パスまたはファイル名に対する除外ルール。 |
|
--exclude-from |
stringArray |
ファイルから除外ルールを読み取ります。 |
|
--expires |
string |
キャッシュコンテンツの絶対的な有効期限を設定します。 |
|
--files-from |
stringArray |
ファイルからソースファイル名のリストを読み取り、空行またはコメント行をスキップします。フィルタリングシナリオでのみ適用されます。 |
|
--files-from-raw |
stringArray |
ファイルからソースファイル名のリストを読み取ります。フィルタリングシナリオでのみ適用されます。 |
|
--filter |
stringArray |
パスまたはファイル名に対するフィルタリングルール。 |
|
--filter-from |
stringArray |
ファイルからフィルタリングルールを読み取ります。 |
|
-f, --force |
/ |
確認のプロンプトを表示せずに強制的に操作を実行します。 |
|
--ignore-existing |
/ |
送信先にすでに存在するファイルをスキップします。 |
|
--include |
stringArray |
パスまたはファイル名に対する包含ルール。 |
|
--include-from |
stringArray |
ファイルから包含ルールを読み取ります。 |
|
-j, --job |
int |
同時実行ジョブ数。デフォルト:3。 説明
このオプションは、 |
|
--list-objects |
/ |
ListObjects API を使用してオブジェクトを列挙します。 |
|
--max-size |
SizeSuffix |
転送するファイルの最大サイズ。デフォルト単位はバイトです。接尾辞(B|K|M|G|T|P)を追加できます(例:1K = 1024 B)。 |
|
--metadata |
strings |
key=value ペアで指定するオブジェクトのユーザーメタデータ。 |
|
--metadata-directive |
string |
送信先オブジェクトのメタデータの設定方法を指定します。有効な値:
|
|
--metadata-exclude |
stringArray |
オブジェクトメタデータに対する除外ルール。 |
|
--metadata-filter |
stringArray |
オブジェクトメタデータに対するフィルタリングルール。 |
|
--metadata-filter-from |
stringArray |
ファイルからメタデータフィルタリングルールを読み取ります。 |
|
--metadata-include |
stringArray |
オブジェクトメタデータに対する包含ルール。 |
|
--min-age |
Duration |
指定された時間間隔より前に変更されたファイルのみをコピーします。デフォルト単位は秒です。h(時間)などの接尾辞を使用できます。例:1h は 1 時間を意味します。 説明
|
|
--max-age |
Duration |
指定された時間間隔内に変更されたファイルのみをコピーします。デフォルト単位は秒です。h(時間)などの接尾辞を使用できます。例:1h は 1 時間を意味します。 説明
|
|
--min-mtime |
Time |
指定時刻以降に変更されたファイルのみをコピーします。時刻形式:UTC(例:2006-01-02T15:04:05)。 説明
|
|
--max-mtime |
Time |
指定時刻以前に変更されたファイルのみをコピーします。時刻形式:UTC(例:2006-01-02T15:04:05)。 |
|
--min-size |
SizeSuffix |
転送するファイルの最小サイズ。デフォルト単位はバイトです。接尾辞(B|K|M|G|T|P)を追加できます(例:1K = 1024 B)。 |
|
--no-progress |
/ |
プログレスバーを無効にします。 |
|
--no-error-report |
/ |
バッチ操作中にエラーレポートファイルの生成を防止します。 |
|
--output-dir |
string |
バッチ操作中にエラーレポートファイルを保存するディレクトリ。デフォルト: |
|
--page-size |
int |
バッチコピー時に 1 ページあたりにリストされるオブジェクトの最大数。有効範囲:1~1000。デフォルト:1000。 |
|
--parallel |
int |
単一ファイルに対する内部操作の同時実行タスク数。 |
|
--part-size |
SizeSuffix |
マルチパート操作における各パートのサイズ。デフォルトでは、ossutil がファイルサイズに基づいて最適なパートサイズを計算します。有効範囲:100 KiB~5 GiB。 |
|
-r, --recursive |
/ |
再帰的に操作を実行します。このオプションを設定すると、コマンドはバケット内のすべての一致するオブジェクトを処理します。設定しない場合は、明示的に指定されたオブジェクトに対してのみ操作を行います。 |
|
--request-payer |
string |
リクエストの支払い方法。バケットがリクエスト元支払いモードを使用している場合は、これを requester に設定します。 |
|
--size-only |
/ |
サイズが送信先と異なるソースファイルのみをコピーします。 |
|
--start-after |
string |
アルファベット順で指定値より後のオブジェクトを返します(指定値自体は含みません)。 |
|
--storage-class |
string |
オブジェクトのストレージクラス。有効な値:
|
|
--tagging |
string |
key=value ペアで指定するオブジェクトのタグ。 |
|
--tagging-directive |
string |
送信先オブジェクトのタグの設定方法を指定します。有効な値:
|
|
-u, --update |
/ |
送信先にすでに存在し、かつソースよりも新しい更新時刻を持つファイルをスキップします。 説明
送信先ファイルが存在するが、ソースよりも古い更新時刻を持つ場合は、ファイルが更新されます。 |
|
--version-id |
string |
オブジェクトのバージョン ID(VersionId)を指定します。 |
ossutil バージョン 2.3.0 以降では、--job、--parallel、--bigfile-threshold、--part-size、および --write-buffer-size オプションを設定ファイルで構成できます。関連するプロファイルセクション(例:job=10)に key=value 形式で追加するか、ossutil config set コマンドを使用してください。コマンドラインオプションは、設定ファイルの設定をオーバーライドします。
詳細については、「コマンドラインオプション」をご参照ください。
送信先オブジェクトの命名規則:
-
単一ファイルコピーの場合、dest_prefix が空の場合は、送信先オブジェクト名はソースファイルの相対パスと一致します。
-
単一ファイルコピーの場合、dest_prefix が "/" で終わる場合は、送信先オブジェクト名は dest_prefix + ソースの相対パスになります。
-
単一ファイルコピーの場合、dest_prefix が "/" で終わらない場合は、送信先オブジェクト名は dest_prefix と一致します。
-
バッチコピーの場合、dest_prefix が "/" で終わる場合は、送信先オブジェクト名は dest_prefix + ソースの相対パスになります。
-
バッチコピーの場合、dest_prefix が "/" で終わらない場合は、送信先オブジェクト名は dest_prefix + "/" + ソースの相対パスになります。
使用例
-
単一ファイルのコピー
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/desfolder/ -
増分ファイルのコピー
バッチコピー時に、送信先にすでに存在し、かつソースよりも新しい更新時刻を持つファイルをスキップするには、 --update オプションを使用します。
ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --update -
同一リージョンレプリケーション後のバケット間コピー
-
チェックサムベースの増分コピーには
--checksumオプションを使用:厳密なコンテンツの一貫性が求められる場合(例:失敗したバッチコピーをリトライしながら、正常にコピー済みのファイルをスキップする場合)に最適です。システムは次のロジックに従います。-
まずファイルサイズを比較します。
-
サイズが一致する場合、CRC64 チェックサムを計算・比較します。
-
チェックサムが異なる場合にのみコピーします。
ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --checksum -
-
既存ファイルをスキップするには
--ignore-existingオプションを使用:送信先にすでに存在するファイルを上書きせずにスキップしたい場合に便利です。ossutil cp oss://examplebucket1/srcfolder1/ oss://examplebucket1/desfolder/ -r --ignore-existing
-
-
ファイル名の変更
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/example.txtcp コマンドでファイル名を変更する場合、元のファイルは残ります。必要に応じて、手動で削除してください。
-
オブジェクトタグの変更
ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/ --tagging "abc=1&bcd=2&……"