Proveedores de almacenamiento
S3, Google Cloud Storage, R2 y un adaptador en memoria tras una sola interfaz — cambia de proveedor sin tocar un scope.
Providers de almacenamiento
Un provider es la traducción delgada hacia un bucket. Los tres implementan el mismo contrato, así que cambiar de uno a otro nunca toca los scopes ni el servicio.
// Google Cloud Storage — dos buckets: activos públicos, documentos privados
import { createGcsProvider } from 'uploaderkit/adapters/gcs'
const provider = createGcsProvider({
publicBucket,
privateBucket,
publicUrl: (bucket, key) => `https://cdn.example.com/${key}`,
})// Compatible con S3 — AWS, Cloudflare R2, Backblaze B2, MinIO, Wasabi
import { createS3Provider } from 'uploaderkit/adapters/s3'
const provider = createS3Provider({
client, // un S3Client de @aws-sdk/client-s3; entre backends solo cambian endpoint/credenciales
bucket: 'uploads',
publicUrl: key => `https://cdn.example.com/${key}`,
})// Pruebas y desarrollo local
import { createMemoryProvider } from 'uploaderkit/adapters/memory'
const provider = createMemoryProvider() // las URLs firmadas son falsas pero cargan la expiraciónEl bucket de S3 se trata como privado y publicUrl mapea las keys que expone
un CDN o un dominio público — los buckets modernos bloquean las ACL por objeto,
así que el adaptador no puede inventarse una URL pública estable. Ambos SDK son
peers opcionales: importar un adaptador sin su SDK instalado falla solo para la
app que eligió ese backend.