sync コマンドを使用して、ローカルファイルを Object Storage Service (OSS) に同期できます。
使用上の注意
ローカルファイルを OSS に同期するには、oss:PutObject、oss:ListObjects、および oss:DeleteObject の権限が必要です。詳細については、「RAM ユーザーにカスタムポリシーをアタッチする」をご参照ください。
sync コマンドと cp コマンドの違い
sync コマンドを実行してローカルソースから OSS バケットにデータを同期する場合、コマンドに --delete オプションを追加して、ローカルソースには存在しないがバケットには存在するすべてのファイルを削除できます。このようにして、同期されたファイルのみがバケットに保持されます。 cp コマンドは --delete オプションをサポートしていません。
sync コマンドはローカルソースと OSS バケットを同時にスキャンし、ローカルファイルをコピーします。 cp コマンドはソースをスキャンし、オブジェクトを同時にコピーします。
sync コマンドのソースファイルのデフォルト数と最大数は、それぞれ 100 万と 500 万です。 cp コマンドのソースオブジェクトの数に制限はありません。
コマンド構文
ossutil sync file_url cloud_url
パラメーター | データ型 | 説明 |
file_url | string | ファイルを同期するローカルディレクトリのパス。例: Linux では |
cloud_url | string | ローカルファイルを同期する OSS ディレクトリ。パスは |
--acl | string | 宛先オブジェクトのアクセス制御リスト (ACL)。有効な値:
|
--backup-dir | string | バックアップディレクトリ。 |
--bigfile-threshold | int | マルチパートアップロード、ダウンロード、およびコピーのオブジェクトサイズしきい値。デフォルト値: 104857600。 |
--cache-control | string | オブジェクトのダウンロード時の Web ブラウザーでのキャッシュ動作。 |
--checkpoint-dir | string | チェックポイントファイルが格納されるディレクトリ。デフォルト値: |
--checksum | / | 次のいずれかの条件が満たされた場合にのみ、ソースオブジェクトがコピーされるように指定します。a. ソースオブジェクトのサイズが宛先オブジェクトのサイズと異なる。b. ソースオブジェクトの CRC-64 が宛先オブジェクトの CRC-64 と異なるが、ソースオブジェクトのサイズは宛先オブジェクトのサイズと同じ。このパラメーターは、オブジェクトコピー操作に対してのみ有効です。 |
--content-disposition | string | オブジェクトの表示モード。 |
--content-encoding | string | 宛先オブジェクトのエンコードに使用されるエンコード方式。 |
--content-type | string | 宛先オブジェクトのコンテンツタイプ。 |
--copy-props | string | ローカルファイルから同期する属性。有効な値:
|
--delete | / | 宛先パスに存在するがソースパスには存在しないオブジェクトを削除します。 |
-d, --dirs | / | サブディレクトリ内のオブジェクトを再帰的に照合する代わりに、現在のディレクトリ内のオブジェクトとサブディレクトリを照合します。 |
--encoding-type | string | オブジェクト名のエンコードに使用されるエンコード方式。有効な値: url。 |
--end-with | string | 名前がアルファベット順で --end-with パラメーターの値以前であるオブジェクトを返します。 |
--exclude | stringArray | パスまたはファイル名の除外ルール。 |
--exclude-from | stringArray | ファイルから除外ルールを読み取ります。 |
--expires | string | キャッシュされたコンテンツの絶対有効期限。 |
--files-from | stringArray | ファイルからローカルファイルのリストを読み取ります。空行とコメント行は無視されます。 |
--files-from-raw | stringArray | ファイルからローカルファイルのリストを読み取ります。 |
--filter | stringArray | パスまたはファイル名のフィルタールール。 |
--filter-from | stringArray | ファイルからパスまたはファイル名のフィルタールールを読み取ります。 |
-f, --force | / | 確認を要求せずに操作を強制的に実行します。 |
--include | stringArray | パスまたはファイル名の包含ルール。 |
--include-from | stringArray | ファイルから包含ルールを読み取ります。 |
-j, --job | int | マルチファイル操作で実行できる同時タスクの数。デフォルト値: 3。 |
--list-objects | / | ListObjects 操作を呼び出してオブジェクトをリストするように指定します。 |
--min-age | Duration | 少なくとも指定された時間前に最終変更されたファイルを転送します。デフォルトの単位は s (秒) です。次の単位のいずれかを指定することもできます: ms、s、m、h、d、w、M、および y。 たとえば、 |
--max-age | Duration | このパラメーターで定義された期間より前に最終変更されたファイルを転送します。デフォルトの単位は s (秒) です。次の単位のいずれかを指定することもできます: ms、s、m、h、d、w、M、および y。 |
--min-mtime | Time | このパラメーターで定義された UTC 時間より前に最終変更されたファイルを転送します。 たとえば、 |
--max-mtime | Time | このパラメーターで定義された UTC 時間より後に最終変更されたファイルを転送します。 |
--max-size | SizeSuffix | 転送できるファイルの最大サイズ。デフォルトでは、サイズはバイト (B) 単位です。数値の後に 1024 ベースの単位を付けることができます: バイトの場合は B、キビバイトの場合は K、メビバイトの場合は M、ギビバイトの場合は G、テビバイトの場合は T、ペビバイトの場合は P。 |
--max-sync-num | int | ローカルソースから OSS バケットに同期できるファイルの最大数。デフォルト値: 2000000。最大値: 5000000。 |
--metadata | strings | key=value 形式のオブジェクトのユーザーメタデータ。 |
--metadata-directive | string | オブジェクトのメタデータを構成するために使用されるメソッド。有効な値:
|
--metadata-exclude | stringArray | オブジェクトメタデータの除外ルール。 |
--metadata-filter | stringArray | オブジェクトメタデータのフィルタールール。 |
--metadata-filter-from | stringArray | ファイルからメタデータフィルタールールを読み取ります。 |
--metadata-include | stringArray | オブジェクトメタデータの包含ルール。 |
--min-size | SizeSuffix | 転送できるファイルの最小サイズ。デフォルトでは、サイズはバイト (B) 単位です。数値の後に 1024 ベースの単位を付けることができます: バイトの場合は B、キビバイトの場合は K、メビバイトの場合は M、ギビバイトの場合は G、テビバイトの場合は T、ペビバイトの場合は P。 |
--no-progress | / | 進捗状況を表示しないように指定します。 |
--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 | 名前がアルファベット順で --start-after パラメーターの値より後であるオブジェクトを返すように指定します。 |
--storage-class | string | オブジェクトのストレージタイプ。有効な値:
|
--tagging | strings | key=value ペアのオブジェクトのタグ。 |
--tagging-directive | string | 宛先ファイルのタグを構成するために使用されるメソッド。有効な値:
|
-u, --update | / | ソースファイルの最終変更時刻が宛先オブジェクトの最終変更時刻より後の場合にのみ、ソースファイルをコピーします。 |
--ignore-existing | / | 既存の宛先オブジェクトを無視します。 |
詳細については、「コマンドラインオプション」をご参照ください。
例
ローカルデバイスの localfolder ディレクトリを examplebucket バケットの destfolder ディレクトリに同期する
ossutil sync D:/localfolder/ oss://examplebucket/destfolder/
ローカルデバイスの localfolder ディレクトリにある .txt サフィックスを含む名前のファイルを examplebucket バケットの destfolder ディレクトリに同期する
ossutil sync D:/localfolder/ oss://examplebucket/destfolder/ --include "*.txt"
ローカルデバイスの localfolder ディレクトリにある .txt サフィックスを含まない名前のファイルを examplebucket バケットの destfolder ディレクトリに同期する
ossutil sync D:/localfolder/ oss://examplebucket/destfolder/ --exclude "*.txt"
ローカルデバイスの localfolder ディレクトリを examplebucket バケットの destfolder ディレクトリに同期し、localfolder ディレクトリに存在しないオブジェクトを destfolder ディレクトリから削除する
--delete オプションを追加して、localfolder ディレクトリに存在しないすべてのオブジェクトを destfolder ディレクトリから削除します。このようにして、同期されたオブジェクトのみが destfolder ディレクトリに保持されます。
ossutil sync D:/localfolder/ oss://examplebucket/destfolder/ --delete