Pular para o conteúdo principal
POST
Enviar objeto de blob em uma única requisição
Envia um arquivo de até 100 MB em uma única requisição multipart/form-data e o armazena em path. Para arquivos maiores, use Iniciar um upload direto. Responde com 201 e o novo objeto. Escopo: blob:write. Aceita um token de upload. Token de upload: esta rota também aceita um token de upload (Authorization: Bearer vcup_...) no lugar de uma chave de API.
string
obrigatório
Caminho de destino na conta. De 1 a 1024 caracteres, até 16 segmentos de [A-Za-z0-9._ -] (de 1 a 255 caracteres cada), sem / no início ou no fim, sem // nem .., e é obrigatória uma extensão. Caminhos recusados retornam VALIDATION_ERROR; eles nunca são alterados em silêncio.
string
public ou private. Padrão private.
boolean
Substitui um objeto que já existe em path. Padrão false: um caminho ocupado retorna BLOB_OBJECT_ALREADY_EXISTS.
boolean
Quando path está ocupado, salva o arquivo como nome-1.ext, nome-2.ext e assim por diante (o primeiro nome livre), em vez de retornar BLOB_OBJECT_ALREADY_EXISTS. A resposta traz o path final. Padrão false. Não pode ser combinado com overwrite e não tem efeito com um token de upload que fixa o path.
boolean
Insere - seguido de 10 caracteres aleatórios em base 36 antes da extensão. Padrão false. Forçado para true em um token de upload sem path fixo.
string
immutable, max-age=<seconds> ou no-cache (Enterprise-26 ou superior). Padrão: nenhum valor definido.
string
inline ou attachment. Padrão: inline. Arquivos com extensão .html, .htm, .svg, .xml ou .xhtml são sempre servidos como attachment.
string
Nome sugerido quando o arquivo é baixado. Padrão: o último segmento de path.
string
Timestamp ISO 8601 de quando o objeto é excluído. Precisa ser pelo menos o mínimo do plano a partir de agora (7 dias, ou 1 hora no Enterprise-26 ou superior).
string
Objeto JSON, codificado em URL: até 5 chaves, cada uma [a-z0-9-]{1,64}, 512 bytes no total. Enterprise-12 ou superior.
string
SHA-256 do arquivo em hexadecimal. Se não bater, retorna BLOB_CHECKSUM_MISMATCH e nada é armazenado.
string
O ID do workspace, quando o blob pertence a um workspace. A chamada atua sobre o blob do proprietário do workspace e exige a permissão blob:read do workspace (blob:manage nas rotas que alteram dados). Deixe de fora para atuar sobre o seu próprio blob.
file
obrigatório
O arquivo, como única parte do multipart/form-data. Até 100 MB; vale o limite do plano.

Exemplo de requisição

Resposta

object
O objeto armazenado. Responde com 201.

Respostas de erro

string
O código de erro que indica o motivo da falha. Valores possíveis:
  • AUTH_TOKEN_MISSING (401): o cabeçalho Authorization não foi enviado.
  • API_KEY_INVALID (401): a chave de API não existe, foi revogada ou o segredo não confere.
  • API_KEY_SCOPE_DENIED (403): a chave não tem o escopo que esta rota exige (blob:read ou blob:write); details.required informa qual.
  • WORKSPACE_PERMISSION_DENIED (403): somente com workspace_id: você não é membro, ou o seu papel não tem a permissão de blob.
  • WORKSPACE_NOT_FOUND (404): somente com workspace_id: não existe workspace com esse ID, ou você não é membro.
  • BLOB_UPLOAD_TOKEN_INVALID (401): o token de upload não existe, expirou ou foi revogado (somente com token de upload).
  • BLOB_CHECKSUM_MISMATCH (400): o checksum_sha256 não confere com o arquivo. Nada foi armazenado.
  • VALIDATION_ERROR (400): um parâmetro de consulta falhou na validação, por exemplo um path inválido. details.path informa qual.
  • BLOB_OBJECT_ALREADY_EXISTS (409): path está ocupado e overwrite não é true.
  • BLOB_FILE_TOO_LARGE (413): o arquivo tem mais de 100 MB, o limite do plano para esta rota, ou o max_size da regra ou do token.
  • STORAGE_QUOTA_EXCEEDED (403): armazenar o arquivo ultrapassaria a cota de blob do plano.
  • BLOCKED_FILE_TYPE (422): a extensão está bloqueada, não é permitida pela regra da pasta ou pelo token, ou o arquivo é um executável.
  • BLOB_NAMESPACE_SUSPENDED (403): o armazenamento de blob da conta está suspenso, ou o plano expirou. Uploads e outras gravações são recusados desde o início do período de carência de 72 horas.
  • PLAN_RESTRICTED_FEATURE (403): metadata (abaixo do Enterprise-12) ou cache_control: no-cache (abaixo do Enterprise-26) não está incluído no plano.
  • BLOB_UPLOAD_TOKEN_CONSTRAINT (403): somente com token de upload: o caminho, a pasta ou outra opção fixada pelo token não confere com a requisição.
  • BLOB_UPLOAD_TOKEN_EXHAUSTED (401): somente com token de upload: ele já usou todos os seus usos.
  • RATE_LIMIT_EXCEEDED (429): abaixo do Enterprise-12, os uploads são limitados a 1 por segundo. details.retry_after informa a espera.
Última modificação em 28 de outubro de 2026