ダッシュボード、Workers API、S3 API、またはコマンドラインツールを使って、R2 からオブジェクトをダウンロードできます。
-
Cloudflare ダッシュボードで R2 object storage ページを開きます。
Overview を開く ↗ -
バケットを選びます。
-
ダウンロードするオブジェクトを探します。
-
オブジェクトの ... を開き、Download を選びます。
Workers の R2 バインディング を使い、オブジェクトをダウンロードします。
export default {
async fetch(request: Request, env: Env, ctx: ExecutionContext) {
const object = await env.MY_BUCKET.get("image.png");
if (object === null) {
return new Response("Object not found", { status: 404 });
}
return new Response(object.body);
},
} satisfies ExportedHandler<Env>;完全なドキュメントは Workers API を参照してください。
S3 互換 SDK を使ってオブジェクトをダウンロードします。アカウント ID と R2 API トークン が必要です。
import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";
const S3 = new S3Client({
region: "auto", // Required by SDK but not used by R2
// Provide your Cloudflare account ID
endpoint: `https://<ACCOUNT_ID>.r2.cloudflarestorage.com`,
// Retrieve your S3 API credentials for your R2 bucket via API tokens (see: https://developers.cloudflare.com/r2/api/tokens)
credentials: {
accessKeyId: '<ACCESS_KEY_ID>',
secretAccessKey: '<SECRET_ACCESS_KEY>',
},
});
const response = await S3.send(
new GetObjectCommand({
Bucket: "my-bucket",
Key: "image.png",
}),
);import boto3
s3 = boto3.client(
service_name="s3",
# Provide your Cloudflare account ID
endpoint_url=f"https://{ACCOUNT_ID}.r2.cloudflarestorage.com",
# Retrieve your S3 API credentials for your R2 bucket via API tokens (see: https://developers.cloudflare.com/r2/api/tokens)
aws_access_key_id=ACCESS_KEY_ID,
aws_secret_access_key=SECRET_ACCESS_KEY,
region_name="auto", # Required by SDK but not used by R2
)
response = s3.get_object(Bucket="my-bucket", Key="image.png")
image_data = response["Body"].read()S3 API のメソッド一覧は、R2 の S3 API ドキュメント を参照してください。
ユーザーが R2 から直接ダウンロードするクライアント側のダウンロードでは、署名付き URL を使います。サーバーが一時的なダウンロード URL を生成し、クライアントは API 認証情報を公開せずにその URL を使えます。
- アプリケーションが S3 SDK で署名付き GET URL を生成します
- その URL をクライアントへ送ります
- クライアントは署名付き URL を使い、R2 から直接ダウンロードします
署名付き URL の生成と使い方は 署名付き URL を参照してください。
Wrangler でオブジェクトをダウンロードします。r2 object get コマンド を実行します。
wrangler r2 object get test-bucket/image.pngファイルは現在の作業ディレクトリにダウンロードされます。--file フラグでダウンロード時の新しいファイル名を指定でき、--pipe フラグで標準出力(stdout)へパイプできます。