Blobs (archivos)
import { Aside } from ‘@astrojs/starlight/components’;
Subí y serví archivos. Accedé vía sdk.blobs.
Métodos
Sección titulada «Métodos»upload(file, { filename?, mimeType? }): Promise<BlobInfo>get(id): Promise<BlobInfo | null>getDownloadUrl(id): Promise<string> // short-lived, direct from R2 — preferredgetUrl(id): string // Worker-proxied, long-liveddelete(id): Promise<boolean>list({ limit?, offset? }): Promise<BlobListResult>storage(): Promise<StorageInfo>Ejemplos
Sección titulada «Ejemplos»const file = document.querySelector('input[type=file]').files[0];const blob = await sdk.blobs.upload(file);
// Large media — get a fresh signed URL each time you need itimgEl.src = await sdk.blobs.getDownloadUrl(blob.id);
const { used, limit } = await sdk.blobs.storage();Límites y tipos
Sección titulada «Límites y tipos»| Restricción | Valor |
|---|---|
| Por archivo | 50 MB (plan Free: 25 MB) |
| Por artifact | 500 MB |
| Por workspace | Free 50 MB · Pro 5 GB · Teams 10 GB/asiento |
| Máximo de blobs | 1000 |
Las subidas están limitadas por todos estos topes — gana el más estricto. La cuota por
workspace se comparte con datasets y assets; superarla devuelve STORAGE_QUOTA_EXCEEDED
(507) y un archivo que excede el tope devuelve FILE_TOO_LARGE (413).
Permitidos: imágenes (PNG/JPEG/GIF/WebP/SVG), video (MP4/WebM), audio (MP3/WAV/OGG), PDF, TXT, CSV, Markdown.
Manifest
Sección titulada «Manifest»<script type="shareout/manifest">{ "version": "2.0", "sources": { "blobs": ["logo.png", "document.pdf"] } }</script>Equivalentes REST: Blobs API.