Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

Rclone

最終更新 Markdown で表示Agent セットアップ

開始する前に、Access Key を生成 する必要があります。以降の例では、生成した Access Key IDSecret Access Key の値を表す access_key_idaccess_key_secret 変数を使います。


rclone はクラウドストレージ上のファイルを管理するコマンドラインツールです。rclone を使うと、R2 へオブジェクトを並列にアップロードできます。

rclone を設定する

rclone をインストールしたあと、rclone config を実行して、新しい S3 ストレージプロバイダーを設定できます。新しいプロバイダーの詳細について、一連の質問が表示されます。

  1. n を選んで、新しい remote を作成します。
  2. 新しい remote の名前を選びます。例: r2
  3. ストレージタイプで Amazon S3 Compliant Storage Providers を選びます。
  4. プロバイダーで Cloudflare R2 storage を選びます。
  5. AWS 認証情報を手動で入力するか、ランタイム環境から取得するかを選びます。
  6. AWS Access Key ID を入力します。
  7. AWS Secret Access Key(パスワード)を入力します。
  8. 接続するリージョンを選びます(任意)。
  9. S3 API のエンドポイントを選びます。

既存の rclone 設定を編集する

以前に rclone を設定済みの場合は、rclone config file を実行すると、rclone 設定ファイルの場所が表示されます。

rclone config file
# Configuration file is stored at:
# ~/.config/rclone/rclone.conf

次に、エディター(たとえば nanovim)で新しいプロバイダーを追加または編集します。次の例では、新しい r2 プロバイダーを追加します。

[r2]
type = s3
provider = Cloudflare
access_key_id = abc123
secret_access_key = xyz456
endpoint = https://<accountid>.r2.cloudflarestorage.com
acl = private

そのあと、通常のワークフローで新しい rclone プロバイダーを使えます。

バケットとオブジェクトを一覧する

rclone tree コマンドで、リモート(この場合は Cloudflare R2)の内容を一覧できます。

rclone tree r2:
# /
# ├── user-uploads
# │   └── foobar.png
# └── my-bucket-name
#     ├── cat.png
#     └── todos.txt

rclone tree r2:my-bucket-name
# /
# ├── cat.png
# └── todos.txt

オブジェクトのアップロードと取得

rclone copy コマンドで、R2 バケットへオブジェクトをアップロードしたり、逆方向に取得したりできます。R2 がサポートする最大オブジェクトサイズである 5 TB までのファイルをアップロードできます。

# Upload dog.txt to the user-uploads bucket
rclone copy dog.txt r2:user-uploads/
rclone tree r2:user-uploads
# /
# ├── foobar.png
# └── dog.txt

# Download dog.txt from the user-uploads bucket
rclone copy r2:user-uploads/dog.txt .

マルチパートアップロードのパートサイズについて

マルチパートアップロードでは、パートサイズが Class A 操作の回数に大きく影響し、課金額が変わることがあります。 パートのアップロードはそれぞれ別の操作としてカウントされます。パートを大きくすると操作回数は減りますが、アップロード失敗時のリトライコストは増える場合があります。また、マルチパートアップロードは、少なくとも CreateMultipartUploadUploadPartCompleteMultipartUpload の各操作を 1 回含むため、単一の PutObject と比べて常に 3 倍以上の操作を消費します。

パートサイズのバランスはユースケースに大きく依存します。ただし、これらの要因は請求額を抑える手がかりになるので、検討する価値があります。

rclone のマルチパートアップロードのパートサイズは、--s3-chunk-size CLI 引数で設定できます。rclone がマルチパートアップロードを使うようにするには、--s3-upload-cutoff 引数も調整が必要な場合があります。どちらも設定ファイルで指定できます。一般に、--s3-upload-cutoff--s3-chunk-size 以上にします。

rclone copy long-video.mp4 r2:user-uploads/ --s3-upload-cutoff=100M --s3-chunk-size=100M

事前署名 URL を生成する

rclone link コマンドを使うと、ファイルへの一時的な公開アクセスを共有するための事前署名リンクも生成できます。

# You can pass the --expire flag to determine how long the presigned link is valid. The --unlink flag isn't supported by R2.
rclone link r2: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>

役に立ちましたか?