← Cloudflare R2 / r2 / examples
Rclone
Musíte vygenerovat Access Key než začnete. Všechny příklady budou používat access_key_id a access_key_secret proměnné, které představují Access Key ID a Secret Access Key hodnoty, které jste vygenerovali.
Rclone je nástroj příkazové řádky pro správu souborů v cloudovém úložišti. S jeho pomocí můžete do R2 nahrávat objekty souběžně.
Konfigurace rclone
S rclone ↗ nainstalováno, můžete spustit rclone config ↗ abyste nakonfigurovali nového poskytovatele úložiště S3. Zobrazí se vám řada otázek týkajících se podrobností nového poskytovatele.
- Vytvořte nové vzdálené úložiště výběrem
n. - Vyberte název pro nový remote. Můžete například použít
r2. - Vyberte
Amazon S3 Compliant Storage Providerstyp úložiště. - Vyberte
Cloudflare R2 storagepro poskytovatele. - Vyberte, zda chcete zadat přihlašovací údaje AWS ručně, nebo je získat z běhového prostředí.
- Zadejte AWS Access Key ID.
- Zadejte AWS Secret Access Key (heslo).
- Vyberte oblast, ke které se chcete připojit (volitelné).
- Vyberte koncový bod S3 API.
Úprava existující konfigurace rclone
Pokud jste již nakonfigurovali rclone v minulosti, můžete spustit rclone config file pro vypsání umístění vašeho rclone konfigurační soubor:
rclone config file
# Configuration file is stored at:
# ~/.config/rclone/rclone.confPoté použijte editor (nano nebo vim, například) a přidejte nebo upravte nového poskytovatele. Tento příklad předpokládá, že přidáváte nového r2 poskytovatele:
[r2]
type = s3
provider = Cloudflare
access_key_id = abc123
secret_access_key = xyz456
endpoint = https://<accountid>.r2.cloudflarestorage.com
acl = privatePoté můžete použít nový rclone poskytovatele pro jakékoli své běžné pracovní postupy.
Výpis bucketů & objektů
rclone tree ↗ lze použít k výpisu obsahu vzdáleného úložiště, v tomto případě Cloudflare R2.
rclone tree r2:
# /
# ├── user-uploads
# │ └── foobar.png
# └── my-bucket-name
# ├── cat.png
# └── todos.txt
rclone tree r2:my-bucket-name
# /
# ├── cat.png
# └── todos.txtNahrávání a načítání objektů
rclone copy ↗ lze použít k nahrávání objektů do R2 bucketu a naopak. To umožňuje nahrávat soubory až do maximální velikosti objektu 5 TB, kterou R2 podporuje.
# Upload dog.txt to the user-uploads bucket
rclone copy dog.txt r2:user-uploads/
rclone tree r2:user-uploads
# /
# ├── foobar.png
# └── dog.txt
# Download dog.txt from the user-uploads bucket
rclone copy r2:user-uploads/dog.txt .Poznámka k velikostem dílů multipart uploadu
U vícedílného nahrávání může velikost dílů výrazně ovlivnit počet použitých operací třídy A, což může ovlivnit výslednou částku, kterou zaplatíte.
Každé nahrání dílu se počítá jako samostatná operace, takže větší díly znamenají méně operací, ale jejich opakování při selhání nahrávání může být nákladnější. Mějte také na paměti, že vícedílné nahrávání vždy spotřebuje minimálně třikrát více operací než jediné PutObject, protože bude obsahovat alespoň jeden CreateMultipartUpload, UploadPart & CompleteMultipartUpload operace.
Volba velikosti části velmi závisí na konkrétním případu použití. Následující faktory vám ale pomohou minimalizovat vyúčtování, a proto se vyplatí je zvážit.
Velikost části multipart uploadu v rclone můžete nakonfigurovat pomocí --s3-chunk-size argument CLI. Mějte na paměti, že možná budete muset upravit také --s3-upload-cutoff argument, abyste zajistili, že rclone používá multipart uploady. Oba tyto parametry lze nastavit i v konfiguračním souboru. Obecně platí, že --s3-upload-cutoff nebude menší než --s3-chunk-size.
rclone copy long-video.mp4 r2:user-uploads/ --s3-upload-cutoff=100M --s3-chunk-size=100MGenerování presigned URL adres
Můžete také vygenerovat presigned odkazy, které umožňují dočasně sdílet veřejný přístup k souboru pomocí odkaz rclone ↗ příkazu.
# You can pass the --expire flag to determine how long the presigned link is valid. The --unlink flag isn't supported by R2.
rclone link r2:my-bucket-name/cat.png --expire 3600
# https://<accountid>.r2.cloudflarestorage.com/my-bucket-name/cat.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=<credential>&X-Amz-Date=<timestamp>&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=<signature>