← Sandbox SDK / sandbox / api
Úložiště
Připojte buckety úložiště kompatibilního s S3 (R2, S3, GCS) do souborového systému sandboxu pro trvalý přístup k datům. mountBucket() podporuje připojení přes R2 binding, lokální synchronizaci R2 bindingu během vývoje a připojení vzdálených endpointů kompatibilních s S3.
Metody
mountBucket()
Připojte bucket kompatibilní s S3 k lokální cestě v sandboxu.
await sandbox.mountBucket(
bucket: string,
mountPath: string,
options?: MountBucketOptions
): Promise<void>Parametry:
bucket- Identifikátor bucketu- Když
options.endpointje vynechán, předejte název R2 bindingu Workeru (například"MY_BUCKET") - Když
options.endpointje zadán, předejte název vzdáleného bucketu (například"my-r2-bucket")
- Když
mountPath- Cesta v místním souborovém systému, kam se má připojit (například"/data")options(volitelné) - Konfigurace připojení (vizMountBucketOptions)
// Mount an R2 bucket by Worker binding name
await sandbox.mountBucket("MY_BUCKET", "/data");
// Read/write files directly
const data = await sandbox.readFile("/data/config.json");
await sandbox.writeFile("/data/results.json", JSON.stringify(data));
// Mount a remote S3-compatible bucket, including explicit R2 endpoints
await sandbox.mountBucket("my-bucket", "/storage", {
endpoint: "https://s3.amazonaws.com",
credentials: {
accessKeyId: env.AWS_ACCESS_KEY_ID,
secretAccessKey: env.AWS_SECRET_ACCESS_KEY,
},
});
// Mount an R2 bucket during local development with wrangler dev
await sandbox.mountBucket("MY_BUCKET", "/local-data", {
localBucket: true,
});
// Mount a prefix from an R2 binding
await sandbox.mountBucket("MY_BUCKET", "/user-data", {
prefix: "/users/user-123",
readOnly: true,
});// Mount an R2 bucket by Worker binding name
await sandbox.mountBucket('MY_BUCKET', '/data');
// Read/write files directly
const data = await sandbox.readFile('/data/config.json');
await sandbox.writeFile('/data/results.json', JSON.stringify(data));
// Mount a remote S3-compatible bucket, including explicit R2 endpoints
await sandbox.mountBucket('my-bucket', '/storage', {
endpoint: 'https://s3.amazonaws.com',
credentials: {
accessKeyId: env.AWS_ACCESS_KEY_ID,
secretAccessKey: env.AWS_SECRET_ACCESS_KEY
}
});
// Mount an R2 bucket during local development with wrangler dev
await sandbox.mountBucket('MY_BUCKET', '/local-data', {
localBucket: true
});
// Mount a prefix from an R2 binding
await sandbox.mountBucket('MY_BUCKET', '/user-data', {
prefix: '/users/user-123',
readOnly: true
});Vyhazuje:
InvalidMountPointError- Neplatná cesta připojení nebo konflikt se stávajícími připojenímiBucketAccessError- Bucket neexistuje nebo nemáte dostatečná oprávnění
unmountBucket()
Odpojte dříve připojený bucket.
await sandbox.unmountBucket(mountPath: string): Promise<void>Parametry:
mountPath- Cesta, kam je bucket připojen (např."/data")
// Mount, process, unmount
await sandbox.mountBucket("MY_BUCKET", "/data");
await sandbox.exec("python process.py");
// Unmount
await sandbox.unmountBucket("/data");// Mount, process, unmount
await sandbox.mountBucket('MY_BUCKET', '/data');
await sandbox.exec('python process.py');
// Unmount
await sandbox.unmountBucket('/data');Typy
MountBucketOptions
interface RemoteMountBucketOptions {
endpoint: string;
provider?: BucketProvider;
credentials?: BucketCredentials;
credentialProxy?: boolean;
readOnly?: boolean;
s3fsOptions?: string[];
prefix?: string;
}
interface LocalMountBucketOptions {
localBucket: true;
prefix?: string;
readOnly?: boolean;
}
interface R2BindingMountBucketOptions {
endpoint?: never;
prefix?: string;
readOnly?: boolean;
s3fsOptions?: string[];
}
type MountBucketOptions =
| RemoteMountBucketOptions
| LocalMountBucketOptions
| R2BindingMountBucketOptions;mountBucket() podporuje tyto tři režimy:
-
Mount R2 bindingu - Vynechte
endpointk připojení podle názvu bindingu Workeru v produkčním prostředí- Využívá zachytávání odchozího provozu bez přihlašovacích údajů pro R2
- Podporuje
prefix,readOnly, as3fsOptions
-
Místní připojení vazby R2 - Nastavte
localBucket: trueběhemwrangler dev- Využívá přímo R2 binding Workeru prostřednictvím lokální synchronizace
- Podporuje
prefixareadOnly
-
Mount vzdáleného endpointu - Nastavte
endpointk připojení libovolného S3 kompatibilního poskytovatele- Podporuje explicitní
credentialsnebo automatickou detekci proměnných prostředí - Nastavte
credentialProxy: trueaby přihlašovací údaje zůstaly mimo kontejner (zachytávání odchozího provozu) - Podporuje
provider,prefix,readOnly, as3fsOptions
- Podporuje explicitní
Podrobnosti o poli:
-
endpoint(pouze v režimu vzdáleného koncového bodu) - URL koncového bodu kompatibilního s S3- R2:
'https://YOUR_ACCOUNT_ID.r2.cloudflarestorage.com' - S3:
'https://s3.amazonaws.com' - GCS:
'https://storage.googleapis.com'
- R2:
-
localBucket(pouze v režimu lokálního vývoje) - Připojte R2 bucket pomocí vazby R2 tohoto Workeru během lokálního vývoje swrangler dev- Když
true, SDK synchronizuje vazbu R2 přímo, místo aby používal koncový bod S3
- Když
-
provider(pouze v režimu vzdáleného koncového bodu) - Nápověda poskytovatele úložiště- Umožňuje optimalizace specifické pro daného poskytovatele
- Hodnoty:
'r2','s3','gcs'
-
credentials(pouze v režimu vzdáleného koncového bodu) - Přístupové údaje API- Obsahuje
accessKeyIdasecretAccessKey - Pokud není zadáno, použijí se proměnné prostředí
- Obsahuje
-
credentialProxy(pouze v režimu vzdáleného koncového bodu) - Směrování požadavků S3 přes Durable Object kvůli podepisování- Když
true, přihlašovací údaje se nikdy nezapisují na disk kontejneru. Durable Object zachytí a znovu podepíše všechny odchozí požadavky S3 na síťové vrstvě, než je předá dál. - Podporuje AWS SigV4 ↗ podepisování pro endpointy kompatibilní s S3 (včetně R2) a podepisování HMAC pro Google Cloud Storage
- Vyžaduje
ContainerProxyaby byl exportován z entrypointu vašeho Workeru - Výchozí:
false(zpětná kompatibilita, doporučujeme nastavit natrue; se v budoucí verzi stane výchozím)
- Když
-
readOnly(volitelné) - Připojit v režimu jen pro čtení- Výchozí:
false
- Výchozí:
-
prefix(volitelné) - Podadresář v bucketu, který se má připojit- Pokud je zadán, je v bodě připojení viditelný pouze obsah pod tímto prefixem
- Musí začínat
/(například/data/uploadsnebo/data/uploads/) - Výchozí: Připojit celý bucket
-
s3fsOptions(pouze u režimů vazby R2 a vzdáleného koncového bodu) - pokročilé přípojné příznaky s3fs- Typ:
string[] - Příklad:
['use_cache=/tmp/cache', 'stat_cache_expire=1']
- Typ:
BucketProvider
Nápověda poskytovatele úložiště pro automatickou optimalizaci příznaku s3fs.
type BucketProvider = "r2" | "s3" | "gcs";'r2'- Cloudflare R2 (doporučeno, platínomixuploadpříznak)'s3'- Amazon S3'gcs'- Google Cloud Storage
Související zdroje
- Průvodce připojováním bucketů - Kompletní návod na připojení bucketu
- API souborů - Čtení a zápis souborů