← Cloudflare R2 / r2 / get-started
Workers API
Workers umožňují spouštět kód na okraji sítě. Po propojení (bind) bucketu R2 s Workerem můžete objekty přímo číst a zapisovat pomocí Workers API.
1. Vytvořte bucket
Bucket ukládá vaše objekty v R2. Nový R2 bucket vytvoříte takto:
-
Přihlaste se ke svému účtu Cloudflare:
npx wrangler login -
Vytvořte bucket s názvem
my-bucket:npx wrangler r2 bucket create my-bucketPokud se zobrazí výzva, vyberte účet, ve kterém chcete bucket vytvořit.
-
Ověřte, že byl bucket vytvořen:
npx wrangler r2 bucket list
-
V Cloudflare Dashboard přejděte na Objektové úložiště R2.
Přejděte na Přehled ↗ -
Vyberte Vytvořit bucket.
-
Zadejte název svého bucketu.
-
Vyberte umístění pro váš bucket a výchozí třída úložiště.
-
Vyberte Vytvořit bucket.
2. Vytvořte Worker s R2 binding
-
Vytvořte nový projekt Worker:
npm create cloudflare@latest -- r2-workerPo zobrazení výzvy vyberte Příklad Hello World a JavaScript (nebo TypeScript) jako šablonu.
-
Přejděte do adresáře projektu:
cd r2-worker -
Přidejte vazbu R2 do konfiguračního souboru Wrangler. Nahraďte
my-buckets názvem vašeho bucketu:{ "r2_buckets": [ { "binding": "MY_BUCKET", "bucket_name": "my-bucket" } ] }[[r2_buckets]] binding = "MY_BUCKET" bucket_name = "my-bucket" -
(Volitelné) Pokud používáte TypeScript, znovu vygenerujte typy:
npx wrangler types
3. Čtěte a zapisujte objekty
Pro práci s vaším bucketem použijte binding. Tento příklad ukládá a načítá objekty na základě cesty URL:
export default {
async fetch(request, env) {
// Get the object key from the URL path
// For example: /images/cat.png → images/cat.png
const url = new URL(request.url);
const key = url.pathname.slice(1);
// PUT: Store the request body in R2
if (request.method === "PUT") {
await env.MY_BUCKET.put(key, request.body);
return new Response(`Put ${key} successfully!`);
}
// GET: Retrieve the object from R2
const object = await env.MY_BUCKET.get(key);
if (object === null) {
return new Response("Object not found", { status: 404 });
}
return new Response(object.body);
},
};export default {
async fetch(request, env): Promise<Response> {
// Get the object key from the URL path
// For example: /images/cat.png → images/cat.png
const url = new URL(request.url);
const key = url.pathname.slice(1);
// PUT: Store the request body in R2
if (request.method === "PUT") {
await env.MY_BUCKET.put(key, request.body);
return new Response(`Put ${key} successfully!`);
}
// GET: Retrieve the object from R2
const object = await env.MY_BUCKET.get(key);
if (object === null) {
return new Response("Object not found", { status: 404 });
}
return new Response(object.body);
},
} satisfies ExportedHandler<Env>;4. Otestujte a nasaďte
-
Otestujte svůj Worker lokálně:
npx wrangler dev -
Jakmile vývojářský server běží, otestujte ukládání a načítání objektů:
# Store an object curl -X PUT http://localhost:8787/my-file.txt -d 'Hello, R2!' # Retrieve the object curl http://localhost:8787/my-file.txt -
Nasazení do produkce:
npx wrangler deploy -
Po nasazení Wrangler vypíše adresu URL vašeho Workeru (například
https://r2-worker.<YOUR_SUBDOMAIN>.workers.dev). Otestujte ukládání a načítání objektů:# Store an object curl -X PUT https://r2-worker.<YOUR_SUBDOMAIN>.workers.dev/my-file.txt -d 'Hello, R2!' # Retrieve the object curl https://r2-worker.<YOUR_SUBDOMAIN>.workers.dev/my-file.txt
Viz Dokumentace Workers R2 API pro úplnou referenci API.