Skip to main content

put(file, options)

put() sube un archivo y devuelve el nuevo objeto.

Entradas

La extensión del objeto se toma de filename y, si no, del nombre base de la ruta o del nombre del File. Los bytes y un Blob simple no tienen nombre, así que pasa filename (por ejemplo "data.json") al subirlos.
En Node.js, una ruta que no se puede abrir lanza un Error simple (Cannot open file: <path>, con el error original en cause). En un navegador, pasar una ruta falla antes, con el error de importar node:fs. Usa en su lugar un File de un <input type="file">.

Opciones

Consulta Object Post para ver todas las reglas del servidor.

Resultado

Subidas simples y multipart

put() elige el flujo de subida según el tamaño del archivo: Todo archivo debe tener al menos 512 bytes; los archivos más pequeños fallan con FILE_TOO_SMALL. El max_size de una regla o de un token de subida, o tu cuota de almacenamiento, pueden reducir el límite de 10 GiB.

Cómo se ejecuta una subida multipart

  1. El SDK inicia la subida y el servidor responde con sus límites de partes (max_size, max_parts).
  2. El archivo se divide en partes de min(max_size, max(16 MiB, ceil(size / max_parts))) bytes. Una parte suele tener 16 MiB o más, pero es más pequeña cuando el max_size del servidor es menor.
  3. Las partes se envían de 6 en 6, el límite del servidor para partes en curso. Una parte fallida se reintenta dentro de maxRetries.
  4. Cuando han llegado todas las partes, el SDK completa la subida.
Si una parte falla definitivamente, o falla la finalización, el SDK espera a las partes que aún están en curso y después aborta la subida, para que ninguna parte llegue después del aborto. Se lanza el error original. No hay reanudación: vuelve a llamar a put().
Una subida multipart no comprueba overwrite: false ni checksum_sha256. Siempre reemplaza un objeto existente con el mismo nombre.
Una cuenta puede tener como máximo 32 subidas multipart abiertas (compartidas con el gateway S3); una más falla con TOO_MANY_OPEN_UPLOADS. Como las partes van de 6 en 6 por cuenta, ejecuta una subida grande cada vez.

Subir desde el navegador

Nunca envíes la clave de API a un navegador. En su lugar, tu servidor genera un token de subida de corta duración y el navegador sube con él.
Un cliente creado con un token solo puede llamar a put(), incluidas las subidas multipart. Cualquier otro método falla con 403 UPLOAD_TOKEN_NOT_ALLOWED.

uploadTokens.create(options)

El token fija todas las opciones con las que se generó. Devuelve { token, expires_at, max_uses }. Consulta Upload Tokens para ver las reglas del servidor.
uploadTokens.create() es una escritura y tiene un único intento: nunca se reintenta.