INTEGRITY Документация

Скачивание объектов

Вы можете скачивать объекты из R2 через панель управления, Workers API, S3 API или инструменты командной строки.

Скачивание через панель управления

  1. На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.

    Перейдите в Обзор ↗
  2. Выберите свой бакет.

  3. Найдите объект, который хотите скачать.

  4. Выберите ... для объекта и нажмите Скачать.

Скачивание через Workers API

Используйте R2 привязки в Workers для скачивания объектов:

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>;

Полную документацию см. в API Workers.

Скачивание через S3 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()

Подробнее см. в R2 Документация по S3 API для всех методов S3 API.

Presigned URLs

Для загрузок на стороне клиента, когда пользователи скачивают файлы напрямую из R2, используйте подписанные URL-адреса. Сервер создаёт временную ссылку для скачивания, которую клиенты могут использовать без раскрытия учётных данных API.

  1. Ваше приложение генерирует presigned GET URL с помощью S3 SDK
  2. Отправьте URL клиенту
  3. Клиент скачивает файл напрямую из R2 по предварительно подписанному URL-адресу

Подробнее о создании и использовании подписанных URL-адресов см. в Presigned URLs.

Скачивание через Wrangler

Используйте Wrangler чтобы скачать объекты. Выполните r2 object get команда:

wrangler r2 object get test-bucket/image.png

Файл будет загружен в текущий рабочий каталог. Вы также можете использовать --file флаг, чтобы задать новое имя объекта при загрузке, и --pipe флаг, чтобы перенаправить загрузку в стандартный вывод (stdout).