ファイルを置く
R2をつくる
バケットと、フォルダが存在しない世界
倉庫を建てます。といっても、頼んでから10秒で終わります。この章で大事なのは建てることより、R2にはフォルダが存在しないという事実を飲み込むことです。ここを勘違いしたまま進むと、あとで必ず混乱します。
この章でできるようになること
- 自分のR2バケット(倉庫)を作る
- キーという名前の付け方を理解して、自分のルールを決める
- Workerに「この倉庫を使っていい」という権限を渡す
バケットとは、倉庫そのもの
R2では、倉庫のことをバケットと呼びます。バケツのバケットです。この中にファイルを入れていきます。
1つのバケットに、何万個ファイルを入れても構いません。用途ごとに分けたいときだけ、バケットを増やします。この教科書では1つで進めます。
画像を置くためのR2バケットを作ってください。名前は my-photos にしてください。 作ったあと、バケットの一覧を表示して、ちゃんとできているか確認してから、結果を日本語で教えてください。
作成に成功すると、Cloudflareが設定に書き足すための文章を一緒に返してきます。あとで使うので、Claude Codeの画面をそのままにしておいてください。
フォルダは、ありません
ここが、この章の本題です。
パソコンでは、写真フォルダの中に2026年フォルダを作って、その中に画像を入れます。R2にはこの入れ子がありません。あるのは、平らな床に並んだ箱だけです。
では、よく見かける images/photo.png という表記は何なのか。あれはファイルの名前そのものです。「images スラッシュ photo.png」という長い1つの名前であって、imagesという入れ物があるわけではありません。
横にスクロールできます
キー(key)
バケットの中でファイルを特定するための名前です。images/2026/photo.png のような文字列全体が、1つのキーです。同じキーで2回入れると、後から入れたもので上書きされます。この性質は、あとで効いてきます。
キーの付け方を、先に決めておく
フォルダが無いということは、名前の付け方が唯一の整理術だということです。ここを適当にすると、1年後に泣きます。おすすめは3つです。
- 先頭に種類を付ける…
images/、docs/のように始める。あとで「images で始まるものだけ出して」という取り出し方ができます - 日本語とスペースを使わない… URLに入れたときに化けたり、記号に置き換わったりします
- 重複しない文字を混ぜる…
photo.pngのような普通の名前は、別の人がアップしたときに上書きされます。ランダムな文字列を混ぜると安全です
3つめは自分でやる必要はありません。第10章で、Claude Codeが自動で付ける形にします。
Workerに「この倉庫を使っていい」と伝える
バケットを作っただけでは、あなたのWorkerはそれを触れません。第6章で出てきたbindingの出番です。設定ファイルに、使っていい権限を書き足します。
いま作った my-photos バケットを、このプロジェクトのWorkerから使えるようにしてください。wrangler.jsonc にR2のbindingを追加して、binding名は BUCKET にしてください。 追加したあと、設定ファイルのどこが変わったかを日本語で説明してください。
設定ファイルには、こういう数行が足されます。
"r2_buckets": [
{ "binding": "BUCKET", "bucket_name": "my-photos" }
]
意味はそのままです。「BUCKETという呼び名で、my-photos という倉庫を使ってよい」。この呼び名は、次の章でプログラムの中に出てきます。
うまくいったか確認する
- バケットの一覧に
my-photosが出てくる - Cloudflareの管理画面のR2の項目にも、同じ名前が表示されている
wrangler.jsoncにr2_bucketsの行が増えている
よくあるつまずき
- A bucket with this name already exists
- その名前は使用済みです。
my-photos-2026のように変えてください。バケット名を変えたら、wrangler.jsoncのbucket_nameも同じ名前に直す必要があります。 - bindingを書いたのに、Workerから使えない
- 設定ファイルを直しただけでは、公開済みのWorkerには反映されません。もう一度公開する操作が必要です。「変更を公開してください」と頼んでください。
- バケットを作ったのに、管理画面に出てこない
- アカウントを複数持っていて、別のアカウントに作られている可能性があります。「いまログインしているアカウントを教えてください」と頼めば確認できます。
- キーに日本語を使ったら、URLが変な文字列になった
- 日本語はURLの中で長い記号列に変換されます。壊れてはいませんが読みにくいので、キーは英数字とハイフンで作るのが無難です。
この章のまとめ
倉庫を建てて、Workerに使用許可を渡しました。そしてR2にはフォルダが無く、スラッシュ入りの長い名前で整理するということを押さえました。
次の章で、いよいよファイルを入れます。
章末チェックリスト
倉庫ができました。次の第10章で、写真を入れます。