ローカルのファイル、画像、動画、またはその他のリソースを OSS にアップロードする場合、または大容量ファイルをアップロードする場合は、ossutil の cp コマンドを使用します。
注意事項
-
ファイルをアップロードするには、
oss:PutObject、oss:ListParts、およびoss:AbortMultipartUpload権限が必要です。詳細については、「RAM ユーザーへのカスタム権限ポリシーの付与」をご参照ください。 -
バッチアップロードは、ソースがディレクトリの場合にのみサポートされます。
-
ossutil 1.0 で利用可能だった
--snapshot-pathオプションは、ossutil 2.0 で削除されました。増分アップロードを実行するには、代わりに-u(--update) オプションを使用します。 -
-u, --updateオプションを使用すると、宛先オブジェクトが存在するかどうかに関わらず、システムは各ファイルに対して少なくとも 1 つの HEAD リクエストを送信して宛先オブジェクトと比較します。データが頻繁に変更されないシナリオでは、これにより多くの非効率なリクエストが生成され、パフォーマンスが低下したり、追加のリクエスト料金が発生したりする可能性があります。不要なリソース消費を避けるために、このオプションを使用する前に、ビジネスニーズを慎重に評価してください。
コマンド構文
ossutil cp source dest [flags]
-
ossutil 2.3.0 以降、
--job、--parallel、--bigfile-threshold、--part-size、および--write-buffer-sizeオプションは設定ファイルで設定できます。設定ファイルの対応するプロファイルセクションにkey=value形式 (例:job=10) で追加するか、ossutil config setを使用して設定します。コマンドラインオプションは、設定ファイルの設定よりも優先されます。 -
ossutil 2.4.0 以降、cp コマンドでシンボリックリンクされたサブディレクトリのアップロードをサポートするために
--enable-symlink-dirオプションが追加されました。
|
パラメーター |
タイプ |
説明 |
|
source |
string |
ローカルファイルパス。相対パス、絶対パス、および |
|
dest |
string |
宛先バケット内のファイルパス。例: |
|
--acl |
string |
オブジェクトのアクセス権限。有効値:
|
|
--bandwidth-limit |
SizeSuffix |
ネットワーク帯域幅を制限してデータ転送レートを制御します。最小値は 1024 B/s です。デフォルトの単位は B/s です。 このパラメーターを設定する際は、必要に応じて単位を指定してください。有効な単位には、B (バイト)、K (キロバイト)、M (メガバイト)、G (ギガバイト) が含まれます。たとえば、50 M は帯域幅制限を 50 MB/s に設定します。 |
|
--bigfile-threshold |
SizeSuffix |
大容量ファイルのマルチパートアップロード、ダウンロード、またはコピーを有効にするためのしきい値 (バイト単位)。デフォルト値:104857600。 説明
ossutil 2.3.0 以降、設定ファイルでの設定をサポートします。 |
|
--cache-control |
string |
オブジェクトが Web ブラウザーによってダウンロードされる際のキャッシュ動作を指定します。 |
|
--content-disposition |
string |
オブジェクトの表示方法を指定します。 |
|
--content-encoding |
string |
オブジェクトのエンコーディング方式を宣言します。 |
|
--content-type |
string |
オブジェクトのコンテンツタイプ。 |
|
--copy-props |
string |
ソースオブジェクトからコピーするプロパティを決定します。有効値:
|
|
--checkpoint-dir |
string |
|
|
-d, --dirs |
string |
サブディレクトリ内のすべてのファイルを再帰的にリストせずに、現在のディレクトリ内のファイルとサブディレクトリをリストします。 |
|
--encoding-type |
string |
入力オブジェクト名またはファイル名のエンコーディング方式。有効値:url。 |
|
--end-with |
string |
アルファベット順で指定された値の前または一致するオブジェクトを返します。 |
|
--exclude |
stringArray |
パスまたはファイル名の除外ルール。 |
|
--exclude-from |
stringArray |
ルールファイルから除外ルールを読み取ります。 |
|
--expires |
stringArray |
キャッシュされたコンテンツの絶対有効期限を指定します。 |
|
--files-from |
stringArray |
ファイルからソースファイル名のリストを読み取り、空行とコメント行を無視します。フィルタリングシナリオにのみ適用されます。 |
|
--files-from-raw |
stringArray |
ファイルからソースファイル名のリストを読み取ります。フィルタリングシナリオにのみ適用されます。 |
|
--filter |
stringArray |
パスまたはファイル名のフィルタリングルール。 |
|
--filter-from |
stringArray |
ルールファイルからフィルタリングルールを読み取ります。 |
|
-f, --force |
/ |
確認プロンプトを表示せずに操作を強制実行します。 |
|
--include |
stringArray |
パスまたはファイル名の包含ルール。 説明
フィルタリングオプションの詳細については、「フィルタリングオプション」をご参照ください。 |
|
--include-from |
stringArray |
ルールファイルから包含ルールを読み取ります。 |
|
-j, --job |
int |
同時タスク数。デフォルト値:3。 説明
|
|
--listObjects |
/ |
ListObjects API を使用してオブジェクトをリストします。 |
|
--max-size |
SizeSuffix |
転送する最大ファイルサイズ。デフォルトの単位はバイトです。サフィックスも使用できます:B|K|M|G|T|P。注:1K (KiB) = 1024B。 |
|
--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 |
指定された時刻 (例:2006-01-02T15:04:05) 以降に変更されたファイルのみをアップロードします。 |
|
--max-mtime |
Time |
指定された時刻 (例:2006-01-02T15:04:05) 以前に変更されたファイルのみをアップロードします。 |
|
--min-size |
SizeSuffix |
転送する最小ファイルサイズ。デフォルトの単位はバイトです。サフィックスも使用できます:B|K|M|G|T|P。注:1K (KiB) = 1024B。 |
|
--no-progress |
/ |
プログレスバーを表示しません。 |
|
--page-size |
int |
バッチアップロード中にページごとにリストされるオブジェクトの最大数。デフォルト値:1000。有効範囲:1~1000。 |
|
--parallel |
int |
単一ファイルに対する内部操作の同時タスク数。 説明
ossutil 2.3.0 以降、設定ファイルでの設定をサポートします。 |
|
--part-size |
SizeSuffix |
マルチパートアップロードのパートサイズ。デフォルトでは、ossutil はファイルサイズに基づいて適切なパートサイズを計算します。有効範囲:100 KiB~5 GiB。 説明
ossutil 2.3.0 以降、設定ファイルでの設定をサポートします。 |
|
-r, --recursive |
/ |
操作を再帰的に実行します。このオプションを指定すると、コマンドはバケット内の一致するすべてのオブジェクトに対して操作を実行します。それ以外の場合は、パスで指定されたオブジェクトに対してのみ操作を実行します。 |
|
--request-payer |
string |
リクエストの支払い方法。バケットがリクエスト元支払いモードを使用している場合にこのパラメーターを設定します。有効値:requester。 |
|
--size-only |
/ |
サイズが宛先ファイルと異なるソースファイルのみをアップロードします。 |
|
--storage-class |
string |
オブジェクトのストレージクラス。有効値:
|
|
--tagging |
strings |
オブジェクトのタグ (key=value 形式)。 |
|
--tagging-directive |
string |
宛先オブジェクトのタグの設定方法を指定します。有効値:
|
|
-u, --update |
/ |
宛先にすでに存在し、ソースファイルよりも更新日時が新しいファイルをスキップします。 説明
ファイルが宛先にすでに存在するが、ソースファイルよりも更新日時が古い場合、ファイルは更新されます。 |
|
--ignore-existing |
/ |
宛先にすでに存在するファイルをスキップします。 |
|
--enable-symlink-dir |
/ |
アップロード中にシンボリックリンク (symlink) のサブディレクトリをたどってアップロードします。デフォルトでは、cp コマンドはディレクトリのアップロード時にシンボリックリンクされたサブディレクトリをスキップします。このオプションを指定すると、コマンドはシンボリックリンクされたサブディレクトリのコンテンツを再帰的にアップロードします。 説明
ossutil 2.4.0 以降でサポートされています。 |
詳細については、「コマンドラインオプション」をご参照ください。
オブジェクトの命名規則は次のとおりです:
-
単一ファイルのアップロードの場合、プレフィックスが空であれば、オブジェクト名はファイル名になります。
-
単一ファイルのアップロードの場合、プレフィックスが "/" で終わる場合、オブジェクト名はプレフィックス + ファイル名になります。
-
バッチアップロードの場合、プレフィックスが空であれば、オブジェクト名はソースファイルの相対パスになります。
-
バッチアップロードの場合、プレフィックスが "/" で終わる場合、オブジェクト名はプレフィックス + ソースファイルの相対パスになります。
-
バッチアップロードの場合、プレフィックスが "/" で終わらない場合、オブジェクト名はプレフィックス + "/" + ソースファイルの相対パスになります。
ソースファイルの相対パスは、ルートディレクトリの後に始まります。たとえば、cp /root/dir/ ... を実行する場合、ファイル /root/dir/subdir/test.txt の相対パスは subdir/test.txt です。
大容量ファイルのアップロードにおける推奨パラメーター
100 MB を超えるファイルをアップロードすると、ossutil は自動的にマルチパートアップロードに切り替わります。アップロード速度を向上させ、再開可能なアップロードを有効にするには、次のパラメーターを一緒に使用します:
|
パラメーター |
推奨値 |
説明 |
|
|
|
複数のファイルをアップロードするための同時タスク数。デフォルト値:3。このオプションは、 |
|
|
|
単一ファイルに対する内部操作 (マルチパートアップロードなど) の同時タスク数。この値を増やすと、単一の大容量ファイルのアップロードが高速化されます。 |
|
|
|
再開可能なアップロードに使用されるディレクトリ。 |
--checkpoint-dir で指定されたディレクトリは、OSS バケットではなく、ローカルサーバー上に作成されます。ossutil は、このパスの下に .ossutil_checkpoint サブディレクトリを自動的に作成し、アップロードの進捗 (マルチパートアップロード ID とパート情報を含む) を記録する .ucp チェックポイントファイルを保存します。
アップロードが中断された場合は、同じコマンドを再度実行します。ossutil はチェックポイントファイルからアップロードを再開し、同じマルチパートアップロード ID を再利用して、すでにアップロードされたパートを再アップロードしません。
例:
ossutil cp localfile.tar oss://examplebucket/desfolder/ -j 10 --parallel 10 --checkpoint-dir /path/to/checkpoint
例
単一ファイルのアップロード
-
単一ファイルのアップロード
ローカルファイル examplefile.txt を examplebucket の desfolder フォルダにアップロードします。
ossutil cp D:/localpath/examplefile.txt oss://examplebucket/desfolder/
複数ファイルのアップロード
-
フォルダ内のファイルのみをアップロード
ローカルフォルダ localfolder のファイルを examplebucket の desfolder フォルダにアップロードします。
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -
条件に一致するファイルのバッチアップロード
TXT ファイル形式のすべてのファイルをアップロードします。
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ --include "*.txt" -
10 個の同時タスクを使用してバッチアップロードします
ossutil cp -r D:/localpath/localfolder/ oss://examplebucket/desfolder/ -f -j 10
アップロード速度の制限
-
ローカルファイル upload.rar を examplebucket の desfolder フォルダに 20 MB/s でアップロードします。デフォルトの単位はバイト/秒 (B/s) です。
ossutil cp D:/upload.rar oss://examplebucket/desfolder/ --bandwidth-limit 20971520 -
ローカルファイル file.rar を examplebucket の desfolder フォルダにアップロードし、アップロード速度を 50 MB/s に制限します。単位をメガバイト/秒 (MB/s) として指定します。
ossutil cp D:/file.rar oss://examplebucket/desfolder/ --bandwidth-limit 50M