オブジェクトのコピーは、ソースバケットから同じリージョン内の送信先バケット、または同じバケット内の別のディレクトリにオブジェクトをコピーします。オブジェクトのコンテンツは変更されません。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 です。 |
--cache-control | string | オブジェクトがダウンロードされたときのウェブページのキャッシュ動作。 |
--checkers | int | 並行して実行されるチェッカーの数。デフォルト値は 16 です。 |
--checkpoint-dir | string | 再開可能な操作のチェックポイント情報を保存するディレクトリ。デフォルト値は |
--checksum | / | サイズまたはチェックサム (存在する場合) が送信先オブジェクトと異なるソースオブジェクトのみをコピーします。このオプションはオブジェクト間のコピーにのみ有効です。 |
--content-disposition | string | オブジェクトの表示方法。 |
--content-encoding | string | オブジェクトのエンコード形式。 |
--content-type | string | オブジェクトのコンテンツタイプ。 |
--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 操作を使用してオブジェクトをリストします。 |
--max-size | SizeSuffix | 転送するオブジェクトの最大サイズ。デフォルト単位はバイトです。B、K、M、G、T、P などの単位サフィックスも使用できます。1 K (KiB) = 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 | 指定された時間間隔より前に変更されたオブジェクトのみをコピーします。デフォルト単位は秒です。単位サフィックスを使用できます。例えば、1h は 1 時間を指定します。 説明
|
--max-age | Duration | 指定された時間間隔内に変更されたオブジェクトのみをコピーします。デフォルト単位は秒です。単位サフィックスを使用できます。例えば、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 などの単位サフィックスも使用できます。1 K (KiB) = 1024 B。 |
--no-progress | / | プログレスバーを表示しません。 |
--no-error-report | / | バッチ処理のエラーレポートファイルを生成しません。 |
--output-dir | string | バッチ処理中に生成されるエラーレポートファイルが保存されるディレクトリ。デフォルト値は |
--page-size | int | バッチコピー操作でページごとにリストするオブジェクトの最大数。デフォルト値は 1000 です。値の範囲は 1 から 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。 |
詳細については、「コマンドラインオプション」をご参照ください。
送信先オブジェクトの命名規則は次のとおりです。
単一のオブジェクトをコピーし、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&……"