rclone
You must generate an Access Key before getting started. All examples will utilize access_key_id and access_key_secret variables which represent the Access Key ID and Secret Access Key values you generated.
rclone ↗をインストールしたら、rclone config ↗を実行して新しいS3ストレージプロバイダーを設定できます。新しいプロバイダーの詳細について一連の質問が表示されます。
過去にrcloneを設定したことがある場合は、rclone config fileを実行してrclone設定ファイルの場所を表示できます:
rclone config file# 設定ファイルは次の場所に保存されています:次に、エディタ(nanoやvimなど)を使用して新しいプロバイダーを追加または編集します。この例では、新しいr2demoプロバイダーを追加することを想定しています:
[r2demo]type = s3provider = Cloudflareaccess_key_id = abc123secret_access_key = xyz456endpoint = https://<accountid>.r2.cloudflarestorage.comacl = privateその後、新しいrcloneプロバイダーを通常のワークフローで使用できます。
rclone tree ↗コマンドを使用して、リモートの内容をリストできます。この場合はCloudflare R2です。
rclone tree r2demo:# /# ├── user-uploads# │ └── foobar.png# └── my-bucket-name# ├── cat.png# └── todos.txt
rclone tree r2demo:my-bucket-name# /# ├── cat.png# └── todos.txtrclone copy ↗コマンドを使用して、R2バケットにオブジェクトをアップロードしたり、その逆を行ったりできます。これにより、R2がサポートする最大5TBのオブジェクトサイズまでファイルをアップロードできます。
# dog.txtをuser-uploadsバケットにアップロードrclone copy dog.txt r2demo:user-uploads/rclone tree r2demo:user-uploads# /# ├── foobar.png# └── dog.txt
# user-uploadsバケットからdog.txtをダウンロードrclone copy r2demo:user-uploads/dog.txt .マルチパートアップロードでは、パートサイズが使用されるClass A操作の数に大きく影響し、最終的に請求額が変わる可能性があります。
各パートのアップロードは別々の操作としてカウントされるため、大きなパートサイズは操作数を減らしますが、アップロードが失敗した場合に再試行するのが高コストになる可能性があります。また、マルチパートアップロードは常に少なくとも3倍の操作を消費します。これは、少なくとも1つのCreateMultipartUpload、UploadPart、およびCompleteMultipartUpload操作を含むためです。
パートサイズのバランスは使用ケースに大きく依存しますが、これらの要因を考慮することで請求額を最小限に抑えることができるため、考慮する価値があります。
--s3-chunk-size CLI引数を使用して、rcloneのマルチパートアップロードのパートサイズを設定できます。rcloneがマルチパートアップロードを使用していることを確認するために、--s3-upload-cutoff引数も調整する必要があるかもしれません。これらの両方は設定ファイルでも設定できます。一般的に、--s3-upload-cutoffは--s3-chunk-sizeよりも小さくなりません。
rclone copy long-video.mp4 r2demo:user-uploads/ --s3-upload-cutoff=100M --s3-chunk-size=100Mrclone link ↗コマンドを使用して、ファイルへの一時的な公開アクセスを共有するためのプレサインドリンクを生成することもできます。
# --expireフラグを渡して、プレサインドリンクの有効期限を決定できます。--unlinkフラグはR2ではサポートされていません。rclone link r2demo:my-bucket-name/cat.png --expire 3600# https://<accountid>.r2.cloudflarestorage.com/my-bucket-name/cat.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<credential>&X-Amz-Date=<timestamp>&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=<signature>