← Cloudflare R2 / r2 / objects
Скачивание объектов
Вы можете скачивать объекты из R2 через панель управления, Workers API, S3 API или инструменты командной строки.
Скачивание через панель управления
-
На панели управления Cloudflare перейдите к разделу Объектное хранилище R2 страницу.
Перейдите в Обзор ↗ -
Выберите свой бакет.
-
Найдите объект, который хотите скачать.
-
Выберите ... для объекта и нажмите Скачать.
Скачивание через 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.
- Ваше приложение генерирует presigned GET URL с помощью S3 SDK
- Отправьте URL клиенту
- Клиент скачивает файл напрямую из R2 по предварительно подписанному URL-адресу
Подробнее о создании и использовании подписанных URL-адресов см. в Presigned URLs.
Скачивание через Wrangler
Используйте Wrangler чтобы скачать объекты. Выполните r2 object get команда:
wrangler r2 object get test-bucket/image.pngФайл будет загружен в текущий рабочий каталог. Вы также можете использовать --file флаг, чтобы задать новое имя объекта при загрузке, и --pipe флаг, чтобы перенаправить загрузку в стандартный вывод (stdout).