r2-upload について
r2-upload は、ファイルを Cloudflare R2 や他の S3 互換ストレージにアップロードし、有効期限付きのダウンロードリンクを作るコマンドラインツールです。複数のバケット設定や、ファイルの一覧表示・削除にも対応します。
主な機能
- 01R2 または S3 互換ストレージへのアップロード
- 02有効期限を指定した署名付きリンクの生成
- 03複数バケットの設定
- 04コンテンツタイプの自動検出
- 05最近のアップロードの一覧表示と削除
活用シーン
- 01ファイルをアップロードして一時リンクを共有
- 02用途に応じた設定済みバケットの選択
- 03オブジェクトパスや公開 URL の指定
- 04最近のアップロードの確認と削除
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ zebbern/ claude-code-guide --skill r2-uploadインストール後、Claude Code で/r2-uploadを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
_meta.jsonCLAWDHUB.mdexample-config.ymlpackage.jsonpnpm-lock.yamlREADME.mdSECURITY.mdtsconfig.jsonsrc/index.tsonboard.ts詳細
Send Me My Files - 有効期間の短い署名付き URL を使用した R2 アップロード
ファイルを Cloudflare R2 または S3 互換ストレージにアップロードし、署名付きダウンロードリンクを生成します。
特長
- ファイルを R2/S3 バケットにアップロード
- 署名付きダウンロード URL を生成(有効期限を設定可能)
- あらゆる S3 互換ストレージに対応(R2、AWS S3、MinIO など)
- 複数のバケット設定
- コンテンツタイプを自動検出
設定
~/.r2-upload.yml を作成するか、R2_UPLOAD_CONFIG 環境変数を設定します。
# Default bucket (used when no bucket specified)
default: my-bucket
# Bucket configurations
buckets:
my-bucket:
endpoint: https://abc123.r2.cloudflarestorage.com
access_key_id: your_access_key
secret_access_key: your_secret_key
bucket_name: my-bucket
public_url: https://files.example.com # Optional: custom domain
region: auto # For R2, use "auto"
# Additional buckets
personal:
endpoint: https://xyz789.r2.cloudflarestorage.com
access_key_id: ...
secret_access_key: ...
bucket_name: personal-files
region: auto
Cloudflare R2 のセットアップ
- Cloudflare Dashboard → R2 に移動します
- バケットを作成します
- R2 API Tokens に移動します:
https://dash.cloudflare.com/<ACCOUNT_ID>/r2/api-tokens - 新しい API トークンを作成します
- 重要: 特定のバケットに適用します(使用するバケットを選択してください)
- 権限:Object Read & Write
- Access Key ID と Secret Access Key をコピーします
- エンドポイント形式を使用します:
https://<account_id>.r2.cloudflarestorage.com region: autoを設定します
AWS S3 のセットアップ
aws-bucket:
endpoint: https://s3.us-east-1.amazonaws.com
access_key_id: ...
secret_access_key: ...
bucket_name: my-aws-bucket
region: us-east-1
使い方
ファイルをアップロードする
r2-upload /path/to/file.pdf
# Returns: https://files.example.com/abc123/file.pdf?signature=...
カスタムパスを指定してアップロードする
r2-upload /path/to/file.pdf --key uploads/2026/file.pdf
特定のバケットにアップロードする
r2-upload /path/to/file.pdf --bucket personal
有効期限をカスタマイズする(デフォルト:5 分)
r2-upload /path/to/file.pdf --expires 24h
r2-upload /path/to/file.pdf --expires 1d
r2-upload /path/to/file.pdf --expires 300 # seconds
パブリック URL(署名なし)
r2-upload /path/to/file.pdf --public
ツール
r2_upload- ファイルをアップロードし、署名付き URL を取得しますr2_list- 最近のアップロードを一覧表示しますr2_delete- ファイルを削除します
環境変数
R2_UPLOAD_CONFIG- 設定ファイルのパス(デフォルト:~/.r2-upload.yml)R2_DEFAULT_BUCKET- デフォルトのバケットを上書きしますR2_DEFAULT_EXPIRES- デフォルトの有効期限(秒)(デフォルト:300 = 5 分)
注意事項
--keyを指定しない限り、アップロードしたファイルは元のファイル名で保存されます- 名前の重複を防ぐため、UUID プレフィックスが自動的に追加されます(例:
abc123/file.pdf) - Content-Type はファイル拡張子から自動的に検出されます
- 署名付き URL は設定した有効期間が過ぎると無効になります
コメント
Markdown 対応