3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Cloudflare R2 CLIを使ってファイルをバケットにアップロードする

Last updated at Posted at 2024-06-26

概要

CloudflareのR2のバケットにCLIを使ってファイルをバケットにアップロードする方法を簡単にまとめる。

なぜCLIなのか

CloudflareのR2はブラウザ経由のドラックアンドドロップのファイルアップロードにも対応している。
しかしながら「一度に100ファイルまで、1ファイルは300MBを超えてはならない」という成約がある。
そのためその上限に抵触するファイルをアップロードするときはCLIを使わないといけない。

前提

  • 今回は下記のような内容が記載されたindex.htmlファイルをアップロードを行う

    index.html
    <h1>Hello Cloudflare R2</h1>
    
  • ローカルPCにで$ awsコマンドが実行できること(実行できなかった場合はこちら→ Mac AWS CLIコマンドを実行できるようにする

  • アップロード先のR2のバケットが作成されていること( 筆者はtestというバケットを用意)

方法

嘘のようで本当の話だが、CloudflareのR2のコマンドラインからの操作ではAWSCLIを用いる。
その方法を順を追ってまとめてみる。

APIトークンの用意

  1. Cloudflareにログインし、サイドバーでR2をクリック

    CleanShot 2024-06-27 at 01.57.45.png

  2. 「R2 API トークンの管理」 をクリック

    CleanShot 2024-06-27 at 01.59.31@2x.png

  3. 「APIトークンを作成する」をクリック

    CleanShot 2024-06-27 at 02.00.55@2x.png

  4. 下記のように設定、完了後「APIトークンを作成する」をクリック

    • トークン名: R2 Token
    • 権限: オブジェクト読み取りと書き込み
    • バケットの指定: 特定のバケットにのみ適用(testバケットを指定)
    • TTL: 無制限
    • クライアント IP アドレスフィルタリング: 設定しない

    CleanShot 2024-06-27 at 02.03.21.png

  5. 「アクセスキーID」「シークレットアクセスキー」「S3クライアントエンドポイント」が出力されるのでそれぞれメモしておく(画面上の案内の通り、それぞれの値はこの画面から遷移してしまうと再表示が未来永劫できないので注意する。忘れてしまったら素直にAPIキーを作り直すしか無い。実は「S3クライアントエンドポイント」だけは部分的に確認する事ができる)

    CleanShot 2024-06-27 at 02.04.49.png

各種キーの割当

前述の作業で取得したAPIキー類をAWSCLIの設定に保存する

  1. 下記を実行してAWSCLIの設定を実施

    aws configure
    
  2. 下記のように設定する

    AWS Access Key ID [None]: 先ほど生成した「アクセスキーID」の値
    AWS Secret Access Key [None]: 先ほど生成した「シークレットアクセスキー」の値
    Default region name [None]: us-east-1
    Default output format [None]: json
    

アップロード

いよいよアップロードだ。デスクトップにあるindex.htmlをtestバケット直下にアップロードしたい。

  1. アップロードする際のコマンドの例

    aws s3 cp ローカルPC側のファイル s3://バケット名/アップロード先のファイル名 --endpoint-url 先ほど生成した「S3クライアントエンドポイント」
    
  2. 実際のコマンドは下記(一部一意な情報は伏せる)

    aws s3 cp index.html s3://test/index.html --endpoint-url 先ほど生成した「S3クライアントエンドポイント」
    
  3. エラーが出なかったらアップロードはおそらく成功しているはずなので、R2のバケット直下を見てみるとindex.htmlを発見、どうやらアップロードは成功した模様

    CleanShot 2024-06-27 at 02.17.59.png

  4. ここまでできれば完了

「S3クライアントエンドポイント」を失念してしまったら

下記で割り出す事ができる。

参考文献

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?