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

Object Storage Service:ローカルファイルをOSSに同期する

最終更新日:May 06, 2024

syncコマンドを実行して、ローカルファイルをObject Storage Service (OSS) に同期できます。

使用上の注意

  • バイナリ名

    このトピックでは、64ビットLinuxシステムで動作するサンプルコマンドラインを提供します。 他のシステムのために、取り替えて下さい./ossutil64対応するバイナリ名を持つコマンドで 詳細は、「ossutilコマンドリファレンス」をご参照ください。

  • 同期するローカルファイルの数

    -- deleteオプションを含めずにsyncコマンドを実行すると、一度に同期できるローカルファイルの数は無制限です。 -- deleteオプションを含めると、一度に最大100万個のローカルファイルを同期できます。 同期するローカルファイルの数が1百万を超える場合、最大同期数1000000を超える。 エラーメッセージが返されます。

  • syncコマンドとcpコマンドの違い

    • syncコマンドは、特定のディレクトリ内のすべてのファイルとサブディレクトリを再帰的に同期します。 -rオプションが指定されている場合だけ, cpコマンドは再帰的にファイルをアップロードします。

    • syncコマンドを実行してローカルソースからOSSバケットにデータを同期する場合、コマンドに -- deleteオプションを追加して、ローカルソースには存在しないがバケットに存在するすべてのファイルを削除できます。 これにより、同期されたファイルのみがバケットに保持されます。 cpコマンドは -- deleteオプションをサポートしていません。

    • syncコマンドは -- version-idオプションをサポートしていません。 したがって、syncコマンドを使用して、バージョン管理が有効なバケット内の以前のバージョンのオブジェクトを同期することはできません。 cpコマンドは、-- version-idオプションをサポートしています。

    上記の違いを除いて、syncコマンドとcpコマンドを同様に使用できます。 cpコマンドの実行方法の詳細については、「オブジェクトのアップロード」をご参照ください。

コマンド構文

. /ossutil64 sync file_url cloud_url
[-f -- force]
[-u -- 更新]
[-- 削除]
[-- enable-symlink-dir]
[-- disable-all-symlink]
[-- disable-無視-エラー]
[-- only-current-dir]
[-- output-dir <value>]
[-- bigfile-threshold <value>]
[-- part-size <value>]
[-- checkpoint-dir <value>]
[-- encoding-type <value>]
[-- snapshot-path <value>]
[-- include <value>]
[-- exclude <value>]
[-- meta <value>]
[-- acl <value>]
[-- maxuppspeed <value>]
[-- disable-crc64]
[-- payer <value>]
[-j, -- job <value>]
[-- parallel <value>]
[-- retry-times <value>]
[-- tagging <value>] 

次の表に、構文のパラメーターとオプションを示します。

パラメータ /オプション

説明

ファイル_url

OSSに同期するローカルファイルのパス。 例: Linuxの場合は /localfolder/ 、Windowsの場合はD:\localfolder\

cloud_url

ローカルファイルを同期するOSSディレクトリ。 パスはoss:// bucketname/path形式です。 例: oss:// examplebucket/exampledir/ cloud_urlをスラッシュ (/) で終わらない値に設定した場合、ossutilは自動的に値の末尾に1つを追加します。

-f -- 力

確認を必要とせずに操作を強制します。

-u, -- update

宛先オブジェクトがバケットに存在しない場合、またはローカルファイルの最終変更時刻がバケット内の宛先オブジェクトの最終変更時刻よりも遅い場合にのみ、ossutilがローカルファイルを同期するように指定します。

-- 削除

同期されたオブジェクトのみが宛先パスに保持されるように指定します。 宛先パス内の他のオブジェクトは削除されます。

警告

コマンドに -- deleteオプションを追加する前に、データが誤って削除されないように、バケットのバージョン管理を有効にすることをお勧めします。 バージョン管理の詳細については、「概要」をご参照ください。

-- enable-symlink-dir

シンボリックリンクがポイントするサブディレクトリが同期されることを指定します。

-- disable-all-symlink

ディレクトリポイント内のシンボリックリンクがあるすべてのファイルおよびサブディレクトリが同期されないことを指定します。

-- disable-無視-エラー

バッチ操作でエラーが無視されないように指定します。

-- only-current-dir

現在のディレクトリのローカルファイルのみを同期するように指定します。 現在のディレクトリのサブディレクトリとこれらのサブディレクトリのファイルは同期されません。

-- output-dir

出力オブジェクトが格納されるディレクトリ。 出力オブジェクトは、オブジェクトのバッチ同期中にエラーが発生したときに生成されるレポートです。 既定では、これらのレポートは現在のディレクトリのossutil_outputディレクトリに保存されます。

-bigfile-threshold

操作に再開可能なアップロードを使用するためのオブジェクトサイズのしきい値。 単位:バイト

再開可能なアップロードのデフォルトのオブジェクトサイズのしきい値は100 MBです。

有効な値: 0 ~ 9223372036854775807

-- 部分サイズ

部品サイズ。 単位:バイト デフォルトでは、ossutilはファイルサイズに基づいて部品サイズを決定します。

有効な値: 1 ~ 9223372036854775807

-- checkpoint-dir

再開可能なアップロードタスクのチェックポイント情報が格納されるディレクトリ。 再開可能なアップロードタスクが失敗すると、ossutilは自動的にという名前のディレクトリを作成します。. ossutil_checkpointディレクトリにチェックポイント情報を保存します。 再開可能アップロードタスクが成功すると、ossutilはディレクトリを削除します。 チェックポイントディレクトリを指定する場合は、ディレクトリを削除できることを確認してください。

-- encoding-type

オブジェクトの名前をエンコードするために使用するメソッド。 このオプションを指定する場合は、値をurlに設定します。 このオプションを指定しない場合、オブジェクトの名前はエンコードされません。

-- snapshot-path

同期されたオブジェクトのスナップショットが保存されるディレクトリ。 次の同期タスクで、ossutilは増分同期のためにこのディレクトリ内のスナップショットを読み取ります。

-含める

指定された条件を満たすすべてのオブジェクトを含みます。

詳細については、「」をご参照ください。オプション -- includeおよび -- exclude.

-除外

指定された条件を満たすすべてのオブジェクトを除外します。

詳細については、「」をご参照ください。オプション -- includeおよび -- exclude.

-メタ

オブジェクトメタデータ。 オブジェクトメタデータをheader:value#header:value形式で指定します。 例: Cache-Control:no-cache#Content-Encoding:gzip 詳細は、「set-meta」をご参照ください。

-- acl

オブジェクトのアクセス制御リスト (ACL) 。 有効な値:

  • デフォルト: オブジェクトのACLは、オブジェクトが格納されているバケットのACLと同じです。

  • private (デフォルト): バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できるのは、バケット所有者のみです。 他のユーザーはバケット内のオブジェクトにアクセスできません。

  • public-read: バケット内のオブジェクトに対して書き込み操作を実行できるのは、バケット所有者のみです。 匿名ユーザーを含む他のユーザーは、バケット内のオブジェクトに対してのみ読み取り操作を実行できます。 これにより、バケット内のデータへの不正アクセスと高額の料金が発生する可能性があります。 ユーザーが禁止されているデータまたは情報をアップロードすると、あなたの法的権利が侵害される可能性があります。 特別な場合を除き、オブジェクトACLをpublic-readに設定しないことを推奨します。

  • public-read-write: 匿名ユーザーを含むすべてのユーザーが、バケット内のオブジェクトに対して読み取りおよび書き込み操作を実行できます。 これにより、バケット内のデータへの無制限のアクセスと、予想外に高いコストが発生する可能性があります。 このオプションをpublic-read-writeに設定する場合は注意してください。

-- maxupspeed

最大アップロード速度。 単位: KB/s。 デフォルト値:0 値0は、アップロード速度が無制限であることを指定します。

-- disable-crc64

CRC-64検証を無効にします。

-- 支払人

トラフィックとリクエスト料金の支払人。 指定したパスのリソースにアクセスするリクエスタにトラフィックとリクエスト料金を支払う場合は、このオプションをrequesterに設定します。

-j, -- job

マルチオブジェクト操作で実行する同時実行タスクの数。 有効な値: 1 ~ 10000 デフォルト値: 3。

-- 平行

1つのオブジェクトに対して実行できる同時タスクの数。 有効な値: 1 ~ 10000 このオプションを設定しない場合、ossutilは操作タイプとオブジェクトサイズに基づいて値を指定します。

-- retry-times

エラーが発生した場合のリトライ回数。 有効な値: 1 ~ 500 デフォルト値は 10 です。

-- タグ付け

TagkeyA=TagvalueA&TagkeyB=TagvalueB .... 形式のオブジェクトのタグ。

d.txte.pngという名前の2つのファイルが、ローカルルートディレクトリのlocalfolderディレクトリに保存されます。 examplebucketという名前のバケットのdestfolderディレクトリには、a.txtb.txtという名前の2つのオブジェクトと、Cという名前のサブディレクトリが含まれています。次の構造は、同期前のコンピュータとOSS上のファイルとディレクトリを示しています。

ローカルルートディレクトリexamplebucket
    └ ─ ─ localfolder ─ ─ destfolder /
            â ─ ─ d.txt â ─ a.txt
            â ─ ─ e.png â ─ b.txt
                                    └ ─ ─ C/ 

次の例は、さまざまなシナリオで同期コマンドを実行してローカルファイルをOSSに同期する方法を示しています。

  • コンピューターのlocalfolderディレクトリをexamplebucketに同期する

    ./ossutil64 sync localfolder/ oss:// examplebucket/destfolder /

    上記のコマンドを実行すると、d.txtおよびe.pngオブジェクトがexamplebucketバケットのdestfolderディレクトリに追加されます。 次の構造は、同期後のコンピュータとOSS上のファイルとディレクトリを示しています。

    ローカルルートディレクトリexamplebucket
        └ ─ ─ localfolder ─ ─ destfolder /
                â ─ ─ d.txt â ─ a.txt
                â ─ ─ e.png â ─ b.txt
                                        â ─ ─ d.txt 
                                        â ─ ─ e.png 
                                        └ ─ ─ C /
                            
  • を同期します。localfolderディレクトリからexamplebucketバケットへのtxtオブジェクト

    ./ossutil64 sync localfolder/ oss:// examplebucket/destfolder/ -"*.txt" を含む

    上記のコマンドを実行すると、d.txtオブジェクトがexamplebucketバケットのdestfolderディレクトリに追加されます。 次の構造は、同期後のコンピュータとOSS上のファイルとディレクトリを示しています。

    ローカルルートディレクトリexamplebucket
        └ ─ ─ localfolder ─ ─ destfolder /
                â ─ ─ d.txt â ─ a.txt
                â ─ ─ e.png â ─ b.txt
                                        â ─ ─ d.txt 
                                        └ ─ ─ C /
                            
  • localfolderディレクトリからexamplebucketバケットへの非TXTオブジェクトの同期

    ./ossutil64 sync localfolder/ oss:// examplebucket/destfolder/ -- exclude "*.txt"

    上記のコマンドを実行すると、e.pngオブジェクトがexamplebucketバケットのdestfolderディレクトリに追加されます。 次の構造は、同期後のコンピュータとOSS上のファイルとディレクトリを示しています。

    ローカルルートディレクトリexamplebucket
        └ ─ ─ localfolder ─ ─ destfolder /
                â ─ ─ d.txt â ─ a.txt
                â ─ ─ e.png â ─ b.txt
                                        â ─ ─ e.png 
                                        └ ─ ─ C /
                            
  • コンピューターのlocalfolderディレクトリをexamplebucketに同期し、同期されたオブジェクトのみをexamplebucketのdestfolderディレクトリに保持します。

    コマンドに -- deleteオプションを追加して、localfolderディレクトリに存在しないすべてのオブジェクトをdestfolderディレクトリから削除します。 これにより、同期されたオブジェクトのみがdestfolderディレクトリに保持されます。

    ./ossutil64 sync localfolder/ oss:// examplebucket/destfolder/ -- 削除

    上記のコマンドを実行すると、localfolderディレクトリがコンピューターからexamplebucketバケットに同期されます。 examplebucketバケットのdestfolderディレクトリ内のa.txtおよびb.txtオブジェクトとCサブディレクトリが削除されます。 同期されたd.txtおよびe.pngオブジェクトのみが、examplebucketバケットのdestfolderディレクトリに保持されます。 次の構造は、同期後のコンピュータとOSS上のファイルとディレクトリを示しています。

    ローカルルートディレクトリexamplebucket
        └ ─ ─ localfolder ─ ─ destfolder /
                â ─ ─ d.txt â ─ d.txt
                â ─ ─ e.png â ─ e.png 
  • 確認なしに、コンピューターからexamplebucketバケットにlocalfolderディレクトリを同期します

    デフォルトでは、ローカルディレクトリをOSSバケットに同期するときに、OSSバケットにローカルディレクトリ内のファイルと同じ名前のオブジェクトが含まれている場合、次のサンプルコマンドに示すように、バケット内の既存のオブジェクトを上書きするかどうかを確認するよう求められます。

    . /ossutil64 sync localfolder/ oss:// examplebucket/destfolder /
    cp: "oss:// examplebucket/destfolder/d.txt"(yまたはN)? 

    examplebucketバケット内のオブジェクトを上書きできることを確認した場合は、次のサンプルコマンドに示すように、コマンドに -f,-- forceオプションを追加して、バケット内の既存のオブジェクトを強制的に上書きできます。

    ./ossutil64 sync localfolder/ oss:// examplebucket/destfolder/ -f

    上記のコマンドを実行すると、d.txtおよびe.pngオブジェクトがexamplebucketバケットのdestfolderディレクトリに追加されます。 次の構造は、同期後のコンピュータとOSS上のファイルとディレクトリを示しています。

    ローカルルートディレクトリexamplebucket
        └ ─ ─ localfolder ─ ─ destfolder /
                â ─ ─ d.txt â ─ a.txt
                â ─ ─ e.png â ─ b.txt
                                        â ─ ─ d.txt 
                                        â ─ ─ e.png
                                        └ ─ ─ C /
                        
  • 上記のコマンドが正常に実行されると、次のような出力が返され、同期されたオブジェクトの数、同期されたオブジェクトのサイズ、および同期タスクで消費された時間が示されます。

    成功: 合計数: 2、サイズ: 750,081。 OK num: 2 (2ファイルアップロード) 。
    
    平均速度1641000 (バイト /秒) 

一般的なオプション

ossutilを使用して別のリージョンにあるバケットに切り替える場合は、コマンドに -eオプションを追加して、指定したバケットがあるリージョンのエンドポイントを指定します。 ossutilを使用して別のAlibaba Cloudアカウントに属するバケットに切り替える場合、コマンドに -iオプションを追加して、指定されたアカウントのAccessKey IDを指定し、コマンドに -kオプションを追加して、指定されたアカウントのAccessKey secretを指定します。

たとえば、次のコマンドを実行して、srcfolderという名前のローカルディレクトリ内のファイルを、中国 (上海) リージョンにあり、別のAlibaba Cloudアカウントが所有するexamplebucketという名前のバケットのtestfolderディレクトリに同期できます。

./ossutil64 sync srcfolder/ oss:// examplebucket/testfolder/ -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA **** -k 67DLVBkH7EamOjy2W5RVAHUY9H ****

共通オプションの詳細については、「共通オプション」をご参照ください。