LoginSignup
12
8

Cloudflare R2 で 10GB まで無料のストレージを使おう!しかも Amazon S3 と同じツールで操作可能!

Last updated at Posted at 2024-02-08

はじめに

Cloudflare R2 はオブジェクトストレージのクラウドサービスです

ざっくり言うと、ファイルをクラウドに保管できます

10 GB までは無料で利用可能です

そして嬉しいのが Amazon S3 と互換性があると言うこと

AWS CLI はもちろん、 Cyberduck 等の S3 対応ツールであれば R2 でも同じように使えます

本記事では、 Cloudflare R2 の使い方を紹介します

Cloudflare Pages や CLoudflare Workers の場合、クレジットカード登録なしで使用できますが、 R2 はクレジットカードが必要です

Cloudflare Pages についてはこちら

Cloudflare Workers についてはこちら

R2 の利用開始

Cloudflare アカウントを持っていない場合、まずはアカウントを作成してください

アカウント作成後、ホーム画面の左メニュー「R2」をクリックします
R2 を初めて使う場合、クレジットカードの登録を求められます
必要な情報を登録してください

スクリーンショット 2024-02-07 9.23.05.png

クレジットカード登録後、以下のような画面が表示されます

スクリーンショット 2024-02-07 9.23.38.png

ブラウザからの操作

ブラウザからのバケット作成

まずはバケット(=バケツ=データの入れ物)を作ります
青い「バケットを作成する」ボタンをクリックしてください

スクリーンショット 2024-02-07 9.23.38.png

バケット名を適当な名前(他と重複しない名前)に変更し、「バケットを作成する」をクリックします

スクリーンショット 2024-02-07 9.24.18.png

空のバケットが作成されました

ブラウザからのオブジェクト操作

「ドラッグアンドドロップするか...」と書かれているエリアにファイルをドロップすると、アップロードできます

スクリーンショット 2024-02-07 9.24.59.png

アップロードしたファイルが一覧表示され、個別にダウンロードや削除が可能です

スクリーンショット 2024-02-07 9.28.21.png

AWS CLI からの操作

Cloudflare R2 は Amazon S3 互換なので、 AWS CLI からも操作可能です

AWS CLI 用の認証情報作成

AWS CLI から操作するため、認証情報(「アクセスキー ID」と「シークレットアクセスキー」)を作成します

R2 の概要ページ右メニューの「R2 API トークンの管理」をクリックしてください

スクリーンショット 2024-02-07 9.23.38.png

API トークンの管理画面が表示されるので、「API トークンを作成する」をクリックします

スクリーンショット 2024-02-07 9.29.48.png

適当なトークン名を入力し、権限は「管理者読み取りと書き込み」を選択します
「API トークンを作成する」をクリックしてください

スクリーンショット 2024-02-07 9.30.47.png

R2 にアクセス可能な API トークンが作成されました

下段に表示されている「アクセスキー ID」と「シークレットアクセスキー」、エンドポイントの URL (デフォルト)を使うことになります

スクリーンショット 2024-02-07 9.32.26.png

AWS CLI への認証情報の登録

以下のコマンドを実行し、取得した認証情報を AWS CLI に登録します

aws configure --profile <任意のプロファイル名>

プロファイル名を環境変数に設定しておきます

以下、 macOS 、 Linux の場合のコマンドになっています

export R2_PROFILE='<設定したプロファイル名>'

エンドポイントの URL を環境変数に設定しておきます

export R2_ENDPOINT='<エンドポイントの URL>'

AWS CLI からのバケット作成

バケット名を環境変数に設定しておきます

export R2_BUCKET='<バケット名>'

以下のコマンドを実行して空のバケットを作成します

aws s3 mb "s3://${R2_BUCKET}" \
  --region auto \
  --profile $R2_PROFILE \
  --endpoint-url $R2_ENDPOINT

結果が make_bucket: <バケット名> と返ってきます

ブラウザから R2 の概要ページを読み込むと、新しいバケットが作成できていることが分かります

AWS CLI からのファイルアップロード

適当なファイルを作成します

echo 'hello' > hello.txt

ファイルを R2 にアップロードします

aws s3 cp ./hello.txt "s3://${R2_BUCKET}/" \
  --profile $R2_PROFILE \
  --endpoint-url $R2_ENDPOINT

結果が upload: ./hello.txt to s3://<バケット名>/hello.txt と返ってきます

ブラウザから当該バケットの内容を確認すると、 hello.txt が追加されています

AWS CLI からのファイル一覧取得

以下のコマンドで R2 のファイル一覧が取得できます

aws s3 ls "s3://${R2_BUCKET}/" \
  --profile $R2_PROFILE \
  --endpoint-url $R2_ENDPOINT

以下のように結果が返ってきます

2024-02-08 09:19:30          6 hello.txt

ダウンロードや削除についても AWS CLI と同様に操作可能です

S3 API との互換性について

以下のページに S3 API との互換性について詳細に説明されています

R2 API で実装していないものについては操作ができません

Cyberduck からの操作

AWS S3 の GUI ツールとしてよく使っている Cyberduck でも R2 に接続可能です

新しい接続を作る際、以下のように入力することで R2 バケットに接続できます

  • 「Amazon S3」を選択
  • 「サーバ」にエンドポイントのホスト名を入力
  • 「アクセスキーID」と「シークレットアクセスキー」を入力

スクリーンショット 2024-02-08 9.29.29.png

接続すると、 GUI からバケットの一覧、バケットの内容確認、ファイル操作ができます

スクリーンショット 2024-02-08 11.26.46.png

まとめ

Cloudflare R2 にバケットを作成し、ファイル操作することができました

AWS CLI や Cyberduck から S3 と同じように操作でき、 AWS ユーザーなら違和感なくすぐ使い始められます

使い方いよっては S3 よりも安価に使えるため、マルチクラウドも検討してみましょう

12
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
8