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

Object Storage Service:cp (オブジェクトのコピー)

最終更新日:Jun 13, 2026

オブジェクトのコピーは、ファイルの内容を変更せずに、ソースバケットから同一リージョン内の送信先バケット、または同一バケット内の別のディレクトリにファイルを複製する操作です。この操作には、ossutil の cp コマンドを使用できます。

重要な注意事項

  • オブジェクトをコピーするには、oss:GetObjectoss: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

オブジェクトのアクセス制御レベル。有効な値:

  • private:非公開。

  • public-read:公開読み取り。

  • public-read-write:公開読み書き。

  • デフォルト:バケットを継承。

--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

再開可能な転送をサポートするためのチェックポイントデータを保存するディレクトリ。デフォルト:.ossutil_checkpoint/

--checksum

/

サイズまたはチェックサム(利用可能な場合)が送信先と異なるソースファイルのみをコピーします。オブジェクト間コピー操作でのみ適用されます。

--content-disposition

string

オブジェクトの表示形式を指定します。

--content-encoding

string

オブジェクトに使用されるエンコーディング方式を宣言します。

--content-type

string

オブジェクトの MIME タイプ。

--copy-props

string

オブジェクト間操作時にオブジェクトプロパティおよびタグのコピー方法を制御します。サポートされる値:

  • default(デフォルト):オブジェクトプロパティおよびタグの両方をコピーします。オブジェクトプロパティには、content-type、content-language、content-encoding、content-disposition、cache-control、expires、およびメタデータ(カスタムユーザーメタデータ)が含まれます。

  • metadata:オブジェクトプロパティのみをコピーします。

  • none:オブジェクトデータのみをコピーし、プロパティおよびタグは無視します。

-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。

説明

このオプションは、-f--update--size-only、または --ignore-existing のいずれかのフラグと併用した場合にのみ有効です。

--list-objects

/

ListObjects API を使用してオブジェクトを列挙します。

--max-size

SizeSuffix

転送するファイルの最大サイズ。デフォルト単位はバイトです。接尾辞(B|K|M|G|T|P)を追加できます(例:1K = 1024 B)。

--metadata

strings

key=value ペアで指定するオブジェクトのユーザーメタデータ。

--metadata-directive

string

送信先オブジェクトのメタデータの設定方法を指定します。有効な値:

  • COPY

  • REPLACE

--metadata-exclude

stringArray

オブジェクトメタデータに対する除外ルール。

--metadata-filter

stringArray

オブジェクトメタデータに対するフィルタリングルール。

--metadata-filter-from

stringArray

ファイルからメタデータフィルタリングルールを読み取ります。

--metadata-include

stringArray

オブジェクトメタデータに対する包含ルール。

--min-age

Duration

指定された時間間隔より前に変更されたファイルのみをコピーします。デフォルト単位は秒です。h(時間)などの接尾辞を使用できます。例:1h は 1 時間を意味します。

説明

--min-age 1h は、1 時間以上前に変更されたファイルのみをコピーします。

--max-age

Duration

指定された時間間隔内に変更されたファイルのみをコピーします。デフォルト単位は秒です。h(時間)などの接尾辞を使用できます。例:1h は 1 時間を意味します。

説明

--max-age 1h は、過去 1 時間以内に変更されたファイルのみをコピーします。

--min-mtime

Time

指定時刻以降に変更されたファイルのみをコピーします。時刻形式:UTC(例:2006-01-02T15:04:05)。

説明

--min-mtime "2006-01-02T15:04:05" は、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

バッチ操作中にエラーレポートファイルを保存するディレクトリ。デフォルト:ossutil_output

--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

オブジェクトのストレージクラス。有効な値:

  • Standard:標準ストレージ。

  • IA:低頻度アクセスストレージ。

  • Archive:アーカイブストレージ。

  • ColdArchive:コールドアーカイブストレージ。

  • DeepColdArchive:ディープコールドアーカイブストレージ。

--tagging

string

key=value ペアで指定するオブジェクトのタグ。

--tagging-directive

string

送信先オブジェクトのタグの設定方法を指定します。有効な値:

  • COPY

  • REPLACE

-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 オプションを使用:厳密なコンテンツの一貫性が求められる場合(例:失敗したバッチコピーをリトライしながら、正常にコピー済みのファイルをスキップする場合)に最適です。システムは次のロジックに従います。

      1. まずファイルサイズを比較します。

      2. サイズが一致する場合、CRC64 チェックサムを計算・比較します。

      3. チェックサムが異なる場合にのみコピーします。

      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.txt 

    cp コマンドでファイル名を変更する場合、元のファイルは残ります。必要に応じて、手動で削除してください。

  • オブジェクトタグの変更

    ossutil cp oss://examplebucket1/examplefile.txt oss://examplebucket1/ --tagging "abc=1&bcd=2&……"