Skip to main content

put(file, options)

put() envia um arquivo e retorna o novo objeto.

Entradas

A extensão do objeto vem de filename, depois do nome base do caminho ou do nome do File. Bytes e um Blob simples não têm nome, então passe filename (por exemplo "data.json") ao enviá-los.
No Node.js, um caminho que não pode ser aberto lança um Error simples (Cannot open file: <path>, com o erro original em cause). No navegador, passar um caminho falha antes, com o erro da importação de node:fs. Use um File de um <input type="file"> em vez disso.

Opções

Veja Envio de objeto para todas as regras do lado do servidor.

Resultado

Uploads simples e multipart

put() escolhe o fluxo de upload a partir do tamanho do arquivo: Todo arquivo precisa ter pelo menos 512 bytes; arquivos menores falham com FILE_TOO_SMALL. Um max_size de uma regra ou de um token de upload, ou sua cota de armazenamento, pode reduzir o teto de 10 GiB.

Como um upload multipart funciona

  1. O SDK inicia o upload, e o servidor responde com seus limites de partes (max_size, max_parts).
  2. O arquivo é dividido em partes de min(max_size, max(16 MiB, ceil(size / max_parts))) bytes. Uma parte geralmente tem 16 MiB ou mais, mas é menor quando o max_size do servidor é menor.
  3. As partes são enviadas 6 por vez, o limite do servidor para partes em andamento. Uma parte que falha é tentada novamente dentro de maxRetries.
  4. Quando todas as partes chegam, o SDK conclui o upload.
Se uma parte falhar definitivamente, ou se a conclusão falhar, o SDK aguarda as partes ainda em andamento e então cancela o upload, para que nenhuma parte chegue depois do cancelamento. O erro original é lançado. Não há retomada: chame put() novamente.
Um upload multipart não verifica overwrite: false nem checksum_sha256. Ele sempre substitui um objeto existente com o mesmo nome.
Uma conta pode ter no máximo 32 uploads multipart abertos (compartilhados com o gateway S3); mais um falha com TOO_MANY_OPEN_UPLOADS. Como as partes vão 6 por vez por conta, execute um upload grande por vez.

Upload a partir do navegador

Nunca envie a chave de API para um navegador. Em vez disso, seu servidor gera um token de upload de curta duração e o navegador faz o upload com ele.
Um cliente criado com um token só pode chamar put(), incluindo uploads multipart. Qualquer outro método falha com 403 UPLOAD_TOKEN_NOT_ALLOWED.

uploadTokens.create(options)

O token fixa todas as opções com que foi gerado. Retorna { token, expires_at, max_uses }. Veja Tokens de upload para as regras do lado do servidor.
uploadTokens.create() é uma escrita e tem uma única tentativa: nunca é repetido.