← Cloudflare R2 / r2 / get-started
S3
R2 poskytuje podporu pro S3 kompatibilní API, což znamená, že s buckety můžete pracovat pomocí libovolného SDK, knihovny nebo nástroje pro S3. Pokud máte existující kód, který funguje s S3, můžete jej s R2 použít po změně koncového bodu URL.
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. Vygenerujte přihlašovací údaje API
Chcete-li používat S3 API, musíte vygenerovat přihlašovací údaje a získejte Access Key ID a Secret Access Key:
- Přejděte na Cloudflare Dashboard ↗.
- Vyberte Storage & databases > R2 > Overview.
- Vyberte Správa v části API Tokens.
- Vyberte Vytvoření API tokenu účtu nebo Vytvoření uživatelského API tokenu
- Vyberte Object Read & Write oprávnění a Použít pouze na konkrétní buckety abyste vybrali buckety, ke kterým chcete mít přístup.
- Vyberte Create API Token.
- Zkopírujte Access Key ID a Secret Access Key. Uložte je bezpečně, protože tajný klíč už znovu neuvidíte.
Budete také potřebovat URL koncového bodu S3 API, který najdete ve spodní části potvrzovací stránky Create API Token po vytvoření tokenu, nebo na stránce R2 Overview:
https://<ACCOUNT_ID>.r2.cloudflarestorage.com3. Použijte AWS SDK
Následující příklady ukazují použití SDK pro Python a JavaScript. Pro ostatní jazyky se podívejte na Příklady SDK kompatibilních s S3 pro Go, Java, PHP, Ruby, a Rust.
-
Nainstalujte boto3 ↗:
pip install boto3 -
Vytvořte testovací soubor k nahrání:
echo 'Hello, R2!' > myfile.txt -
Pomocí svých přihlašovacích údajů vytvořte klienta S3 a pracujte se svým bucketem:
import boto3 s3 = boto3.client( service_name='s3', # Provide your R2 endpoint: https://<ACCOUNT_ID>.r2.cloudflarestorage.com endpoint_url='https://<ACCOUNT_ID>.r2.cloudflarestorage.com', # Provide your R2 Access Key ID and Secret Access Key aws_access_key_id='<ACCESS_KEY_ID>', aws_secret_access_key='<SECRET_ACCESS_KEY>', region_name='auto', # Required by boto3, not used by R2 ) # Upload a file s3.upload_file('myfile.txt', 'my-bucket', 'myfile.txt') print('Uploaded myfile.txt') # Download a file s3.download_file('my-bucket', 'myfile.txt', 'downloaded.txt') print('Downloaded to downloaded.txt') # List objects response = s3.list_objects_v2(Bucket='my-bucket') for obj in response.get('Contents', []): print(f"Object: {obj['Key']}") -
Uložte toto jako
example.pya spusťte jej:python example.pyUploaded myfile.txt Downloaded to downloaded.txt Object: myfile.txt
Viz příklady pro boto3 pro další operace.
-
Nainstalujte @aws-sdk/client-s3 ↗ balíček:
npm install @aws-sdk/client-s3 -
Pomocí svých přihlašovacích údajů vytvořte klienta S3 a pracujte se svým bucketem:
import { S3Client, PutObjectCommand, GetObjectCommand, ListObjectsV2Command, } from "@aws-sdk/client-s3"; const s3 = new S3Client({ region: "auto", // Required by AWS SDK, not used by R2 // Provide your R2 endpoint: https://<ACCOUNT_ID>.r2.cloudflarestorage.com endpoint: "https://<ACCOUNT_ID>.r2.cloudflarestorage.com", credentials: { // Provide your R2 Access Key ID and Secret Access Key accessKeyId: "<ACCESS_KEY_ID>", secretAccessKey: "<SECRET_ACCESS_KEY>", }, }); // Upload a file await s3.send( new PutObjectCommand({ Bucket: "my-bucket", Key: "myfile.txt", Body: "Hello, R2!", }), ); console.log("Uploaded myfile.txt"); // Download a file const response = await s3.send( new GetObjectCommand({ Bucket: "my-bucket", Key: "myfile.txt", }), ); const content = await response.Body.transformToString(); console.log("Downloaded:", content); // List objects const list = await s3.send( new ListObjectsV2Command({ Bucket: "my-bucket", }), ); console.log( "Objects:", list.Contents.map((obj) => obj.Key), ); -
Uložte toto jako
example.mjsa spusťte jej:node example.mjsUploaded myfile.txt Downloaded: Hello, R2! Objects: [ 'myfile.txt' ]
Viz Příklady AWS SDK for JavaScript pro další operace.