tencent cloud

Cloud Object Storage

ドキュメントCloud Object StorageツールガイドCOSCLIツールよく使用するコマンドファイルの同時アップロード・ダウンロードまたはコピー - sync

ファイルの同時アップロード・ダウンロードまたはコピー - sync

PDF
フォーカスモード
フォントサイズ
最終更新日: 2026-03-30 16:03:11
syncコマンドは、ファイルのアップロード・ダウンロード・コピーを同期させるときに使います。cpコマンドと異なる点は、syncコマンドはまず同名ファイルのcrc64を比較し、crc64の値が同じ場合は転送を行わない点です。
注意:
ファイルアップロードコマンドを使用するには、ポリシー許可を設定する際に、actionをcos:HeadBucketcos:GetBucketcos:HeadObjectcos:InitiateMultipartUploadcos:UploadPartcos:CompleteMultipartUploadcos:ListMultipartUploadscos:ListPartsに設定する必要があります。
ファイルダウンロードコマンドを使用するには、ポリシー許可を設定する際に、actionをcos:HeadBucketcos:GetBucketcos:HeadObjectcos:GetObjectに設定する必要があります。
ファイルコピーコマンドを使用するには、ポリシー許可を行う際に、ターゲットオブジェクトのアクションをcos:GetBucketcos:HeadObjectcos:InitiateMultipartUploadcos:PutObjectcos:CompleteMultipartUploadに、ソースオブジェクトのアクションはcos:HeadBucketcos:GetBucketcos:HeadObjectcos:GetObjectに設定する必要があります。
詳細な権限については、CAM対応APIをご参照ください。

コマンド形式

./coscli sync <source_path> <destination_path> [flag]
sync コマンドには以下のパラメータが含まれています。
パラメータの形式
パラメータの用途
source_path
ソースファイルのパス。ローカルパスまたは COS ファイルパスでもかまいません。COS パスは、構成パラメータ のバケットエイリアス、またはバケット名を使用してアクセスすることがサポートされています。 バケツ名でアクセスする場合は、さらに「endpoint」flagを追加する必要があります。
ローカルパス:~/example.txt
バケットエイリアスを使用して COS ファイルパスを指定する場合:cos://bucketalias/example.txt
バケット名で COS ファイルパスを指定する場合:cos://examplebucket-1250000000/example.txt
destination_path
ターゲットファイルパス。ローカルパスまたは COS ファイルパスでもかまいません。COS パスは、構成パラメータ のバケットエイリアス、またはバケット名を使用してアクセスすることがサポートされています。 バケツ名でアクセスする場合は、さらに「endpoint」flagを追加する必要があります。
ローカルパス:~/example.txt
バケットエイリアスを使用して COS ファイルパスを指定する場合:cos://bucketalias/example.txt
バケット名で COS ファイルパスを指定する場合:cos://examplebucket-1250000000/example.txt
syncコマンドには、以下のオプションflagが含まれます。
flagの略称
flagの正式名称
flagの用途
なし
--include
特定のモードを含むファイル(v1.0.4以前のバージョンではアップロード時にローカルファイル名のみをフィルタリングしていましたが、v1.0.4バージョン以降ではフルパスをフィルタリングします)
えば、./test 以下のすべてのファイルをCOSにアップロードする必要があり、./test には aaa フォルダが含まれ、aaa フォルダ内には1.txt ファイルが含まれています。
1.0.4より前のバージョンはaaa/1.txtにマッチします
1.0.4以降のバージョンは./test/aaa/1.txtにマッチします
なし
--exclude
特定のモードを除外したファイル(v1.0.4以前のバージョンではアップロード時にローカルファイル名のみをフィルタリングしていましたが、v1.0.4バージョン以降ではフルパスをフィルタリングします)
えば、./test 以下のすべてのファイルをCOSにアップロードする必要があり、./test には aaa フォルダが含まれ、aaa フォルダ内には1.txt ファイルが含まれています。
1.0.4より前のバージョンはaaa/1.txtにマッチします
1.0.4以降のバージョンは./test/aaa/1.txtにマッチします
-r
--recursive
フォルダ内のすべてのファイルを再帰的にトラバーサル処理するかどうか
なし
--storage-class
アップロードされるファイルのストレージタイプを指定します(デフォルトは STANDARD)。その他のストレージタイプについては、ストレージタイプの概要を参照してください。
なし
--part-size
ファイルのチャンクサイズ(単位:MB)、デフォルト値は32、最大5120までサポートします。ファイルサイズに基づいてチャンクサイズを自動的に調整する必要がある場合は、0に設定してください。
なし
--thread-num
同時実行スレッド数(デフォルトの同時実行は5)
なし
--rate-limiting
シングルリンクレート制限(0.1~100MB/s)
なし
--snapshot-path
ファイルのアップロードまたはダウンロード時のスナップショット情報が保存されるディレクトリを指定します。次にファイルがアップロードまたはダウンロードされる際に、coscli は指定されたディレクトリのスナップショット情報を読み込んで、増分的にアップロードまたはダウンロードを行います。このオプションは、ディレクトリファイルの同期を高速化するために使用されます。
なし
--meta
アップロードされたファイルのメタ情報。これには HTTP 標準属性(HTTP Header)の一部と、x-cos-meta- で始まるユーザー定義メタデータ(User Meta)が含まれています。ファイルメタ情報の形式は header:value#header:valueであり、その例は Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:xです。
なし
--routines
ファイル間の並列アップロードまたはダウンロードスレッドのファイル数を指定します。デフォルトは3
なし
--fail-output
になります。このオプションは、アップロードまたはダウンロードが失敗した時にファイルのエラー出力を有効にするかどうかを決定します(デフォルトはtrueで、有効になる)。有効にすると、ファイル転送の失敗が指定したディレクトリに記憶されます(指定しない場合はデフォルトで./coscli_outputになる)。無効にすると、エラーファイルの数だけがコンソールに出力されます。
なし
--fail-output-path
このオプションは、アップロードまたはダウンロードに失敗したファイルのエラー出力を記憶するフォルダを指定するために使用されます。カスタムフォルダパスを指定することで、エラー出力フォルダの場所と名前を管理できます。このオプションが設定されていない場合は、デフォルトのエラーログフォルダ./coscli_outputが使用されます。
なし
--retry-num
リトライ回数を制限します(デフォルトは0で、リトライしない)。1-10回から選択できます。複数のデバイスが同じ COS ディレクトリに対して同時にダウンロード操作を行う場合、このパラメータを指定してリトライすることで、頻度制限エラーを回避することができます。
なし
--err-retry-num
エラーの場合のリトライ回数(デフォルトは5である)。1-10回を指定するか、リトライしない場合は0に設定します。
なし
--err-retry-interval
リトライ間隔(--err-retry-num1-10に指定されている場合のみ利用可能)。リトライ間隔を1-10秒で指定します。指定しないか、0に設定した場合は、各リトライ間隔は1-10秒の範囲でランダムになります。
なし
--only-current-dir
カレントディレクトリ内のファイルのみをアップロードし、サブディレクトリとその内容を無視するかどうか (デフォルトはfalseで、無視しない)。
なし
--disable-all-symlink
アップロード時にすべてのソフトリンクのサブファイルとソフトリンクのサブディレクトリを無視するかどうか (デフォルトはtrueで、アップロードしない)。現在、LinuxおよびmacOSシステムのみサポートされています。
なし
--enable-symlink-dir
ソフトリンクのサブディレクトリをアップロードするかどうか (デフォルトはfalseで、アップロードしない)。現在、LinuxおよびmacOSシステムのみサポートされています。
なし
--disable-crc64
CRC64 データ検証を無効にするかどうか(デフォルトはfalseで、検証を有効にする)。
なし
--delete
指定されたターゲットパスにある他のファイルを削除し、今回同期されたファイルのみを残します(デ フォルトはfalseで、削除しない)。誤ってデータを削除しないように、--deleteオプションを使用する前にバージョン管理を有効にすることを推奨します。
なし
--backup-dir
削除されたファイルのバックアップを同期し、ターゲット側で削除され、ソース側には存在しないファイルの保存に使用されます(ダウンロードする時のみ有効で、--delete=true の時に必ず伝送する)。アップロードとバケットコピーは、バージョン管理を使用して誤って削除されたデータを復元してください。
なし
--force
確認のプロンプトを出さずに操作を強制します(デフォルトはfalse)。
なし
--disable-checksum
デフォルトはtrueで、シャードのCRC64のみを検証します。falseに設定すると、ファイル全体のCRC64を検証します。(coscli V1.0.6以前のバージョンではデフォルトはfalseです)
なし
--process-log
プロセスログを有効にするかどうか。デフォルトはtrueで有効です
なし
--process-log-path
このオプションは、プロセスログを保存するための専用出力フォルダを指定するために使用します。ログには、エラーログ、正常実行ログ、リトライなどの詳細を含む、ファイルのアップロードまたはダウンロードに関する情報が記録されます。カスタムのフォルダパスを指定することで、ログ出力フォルダの場所と名前を制御できます。このオプションが設定されていない場合は、デフォルトのログフォルダ(coscli_output)が使用されます。
なし
--update
変更時間が新しいファイルのみを転送する
なし
--ignore-existing
存在しないファイルのみを転送
なし
--skip-dir
デフォルトではfalseです。trueに設定すると、転送時にフォルダをスキップします。
なし
--acl
ファイルのACLを設定します。例:private、public-read
なし
--grant-read
権限を付与されるユーザーに、オブジェクトの読み取り権限を与えます。形式はid="[OwnerUin]"、例:id="100000000001"。半角カンマ(,)で区切って複数のユーザーを指定できます。例:id="100000000001",id="100000000002" 。
なし
--grant-read-acp
権限を付与されるユーザーに、オブジェクトのアクセス制御リスト(ACL)の読み取り権限を与えます。形式はid="[OwnerUin]"、例:id="100000000001"。半角カンマ(,)で区切って複数のユーザーを指定できます。例:id="100000000001",id="100000000002" 。
なし
--grant-write-acp
権限を付与されるユーザーに、オブジェクトのアクセス制御リスト(ACL)の書き込み権限を与えます。形式はid="[OwnerUin]"、例:id="100000000001"。半角カンマ(,)で区切って複数のユーザーを指定できます。例:id="100000000001",id="100000000002" 。
なし
--grant-full-control
権限を付与されるユーザーに、オブジェクトを操作するすべての権限を与えます。形式はid="[OwnerUin]"、例:id="100000000001"。半角カンマ(,)で区切って複数のユーザーを指定できます。例:id="100000000001",id="100000000002" 。
なし
--tags
オブジェクトのタグセット。最大10個のタグを設定できます(例:--tags="Key1=Value1&Key2=Value2")
なし
--forbid-overwrite
バージョニングが有効でないバケットに対し、アップロード時に同名オブジェクトの上書きを禁止するかどうかを指定します。
falseを指定した場合、デフォルトで同名オブジェクトを上書きします。
trueを指定した場合、同名オブジェクトの上書きを禁止します。
バケットのバージョニングが有効または一時停止中の状態である場合、x-cos-forbid-overwriteリクエストヘッダーの設定は無効となり、同名オブジェクトの上書きが許可されます。
なし
--encryption-type
サーバーサイド暗号化の方式(SSE-COS/SSE-C)。
なし
--server-side-encryption
サーバーサイド暗号化アルゴリズム。AES256、cos/kmsをサポートします。
SSE-COSまたはSSE-KMSを使用する場合、このフィールドは必須項目です。
なし
--sse-customer-algo
サーバーサイド暗号化アルゴリズム。AES256をサポートします。
SSE-Cを使用する場合、このフィールドは必須項目です。
なし
--sse-customer-key
サーバーサイド暗号化キーのBase64エンコード。
例:MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=。
SSE-Cを使用する場合、このフィールドは必須項目です。
なし
--sse-customer-key-md5
サーバーサイド暗号化キーのMD5ハッシュ値。Base64でエンコードされています。
例:U5L61r7jcwdNvT7frmUG8g==。
SSE-Cを使用する場合、このフィールドは必須項目です
なし
--check-point
レジュームアップロードを有効にするかどうか。デフォルトではtrueで有効です。
説明:
コマンドを使用する際は、ツールがローカルパスにアクセスする権限があることを確認してください。
syncコマンドは、大容量ファイルのアップロードやダウンロードを行う場合、アップロード/ダウンロードの同時実行を自動的に有効にします。
ファイルが --part-size よりも大きい場合、COSCLIはまず --part-size に従ってファイルをチャンクにし、次に --thread-num 個のスレッドを使用してアップロード/ダウンロードのタスクを同時に実行します。
各スレッドは1つのリンクを維持します。各リンクに対して--rate-limitingパラメータを使用すると、シングルリンクのレート制限ができます。同時アップロード/ダウンロードが有効な場合、合計レートは、--thread-num * --rate-limitingとなります。
ファイルをチャンクでアップロード/ダウンロードする場合、デフォルトで中断からの再開が有効になります。
--includeと --exclude は標準的な正規表現の構文をサポートしており、これを使えば特定の条件を満たすファイルをフィルタリングすることができます。
デフォルトでは、ソフトリンクはアップロードされません。ソフトリンクをアップロードするには、設定 --disable-all-symlink=false--enable-symlink-dir=trueで済みます。注:ソフトリンクにループ参照が存在する場合、ツールがデッドループ状態になる可能性があります。
zshを使用する場合、pattern 文字列の両端に二重引用符を付ける必要がある場合があります。
snapshot-path を、移動するディレクトリまたはそのサブディレクトリに設定しないでください。
./coscli sync ~/test/ cos://bucket1/example/ -r --include ".*\\.txt$" --snapshot-path=/path/snapshot-path --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z
sync コマンドを使用する際に PUT リクエスト料金が発生することに加え、以下の 2 つのケースではクラウド上のファイルに対する HEAD リクエスト料金が発生し、追加の料金が発生することがあります。
スナップショットディレクトリを指定するためのパラメータ (--snapshot-path) が追加されていない場合、HEAD リクエスト料金が発生します。
指定されたスナップショットディレクトリパラメータ(--snapshot-path)が追加され、スナップショットディレクトリが初めて生成される場合、HEAD リクエスト料金が発生します。初めて生成されるスナップショットディレクトリでない場合は追加のリクエスト料金は発生しません。
このコマンドのその他の一般的なオプション(バケットの切り替え、ユーザーアカウントの切り替えなど)については、一般オプション ドキュメンテーションを参照してください。

操作事例

ファイルの同時アップロード

./coscli sync ~/example.txt cos://bucket1/example.txt

ファイルの同時ダウンロード

./coscli sync cos://bucket1/example.txt ~/example.txt

バケット内でのファイル同期コピー

./coscli sync cos://bucket1/example.txt cos://bucket1/example_copy.txt

バケット間でのファイル同期コピー

./coscli sync cos://bucket1/example.txt cos://bucket2/example_copy.txt

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック