← 戻る

wrangler r2 object put のハマりポイント:--remote フラグを忘れるな


問題

wrangler r2 object put で R2 にファイルをアップロード → 確認したら何も入っていない。

原因

wrangler は デフォルトでローカル R2(miniflare)にアップロードする

実際の Cloudflare R2 に送るには --remote フラグが必須。

解決方法

# NG:ローカル R2 にのみアップロード
wrangler r2 object put my-bucket/document.md --file ./document.md

# OK:実際の Cloudflare R2 にアップロード
wrangler r2 object put my-bucket/document.md --file ./document.md --remote

確認方法

# ローカル R2 の内容確認(デフォルト)
wrangler r2 object list my-bucket

# リモート(実際)の R2 の内容確認
wrangler r2 object list my-bucket --remote

ベストプラクティス

自動同期スクリプト(GitHub Actions等)では 必ず --remote を指定 する。

# GitHub Actions での R2 アップロード例
- name: Upload to R2
  run: |
    wrangler r2 object put leango-docs/docs.md \
      --file ./dist/docs.md \
      --remote

デバッグ Tips

アップロード後の検証:

# リモート確認
wrangler r2 object list my-bucket --remote

# ダウンロード確認
wrangler r2 object get my-bucket/document.md --remote

デフォルトで悩むのは一度で終わらせよう。