Saltar para o conteúdo

Pede as URLs de envio direto de várias mídias de uma vez (envio em massa)

POST/api/media/upload-urls

Auth
Exige token
X-CommunityId
X-CommunityId Envie o X-CommunityId da comunidade em que a operação acontece.

O mesmo que `POST /api/media/upload-url`, para **1 a 50 arquivos** de uma finalidade e de um space (finalidade, space e permissão conferidos uma vez). Cada arquivo é conferido sozinho (tipo, extensão, tamanho: imagem até 50 MB): o que falha volta com `error` e não impede os outros. Para cada item aceito, `PUT` em `uploadUrl` com os `headers` (10 minutos) e depois `POST /api/media/confirm-batch` (ou `/confirm`, um por um).

`totalBytes` soma os aceitos; `usage` é o uso atual da comunidade e `warning` já considera o lote (`nearLimit` a partir de 80% do armazenamento, `overLimit` acima de 100%). Como todo limite de mídia, **avisa e não recusa**. Limites por perfil: 20 lotes por hora; **300 arquivos por hora** somando `upload-url` e `upload-urls` (cada arquivo conta; 429 `uploadBudgetExceeded`); e no máximo **100 arquivos enviados e ainda não confirmados** por finalidade (429 `tooManyPending`: confirme os que subiram antes de pedir mais). O lote passa inteiro ou é recusado inteiro nesses limites.

Headers

NomeTipoDescrição
X-CommunityIdopcionalstring (uuid)ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade.

Corpo da requisição application/json

NomeTipoDescrição
purposeobrigatóriocontentVideo | eventRecording | galleryImage | classifiedImage | parcelPhoto | supportPhoto
spaceIdobrigatóriostring (uuid)
filesobrigatórioobject[]
files[].nameobrigatóriostringmax 255
files[].mimeTypeobrigatóriostring
files[].sizeobrigatóriointegerBytes. · ≥ 1

Respostas

CódigoDescrição
200URLs geradas (e os itens recusados).
400Requisição inválida — falha de validação.
401Token ausente, inválido ou expirado.
403Autenticado, mas sem permissão para esta operação.
404Recurso não encontrado.
429Mais de 20 lotes ou de 300 arquivos por hora para este perfil, ou 100 envios sem confirmar.
500Erro interno do servidor.

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/media/upload-urls" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"purpose":"contentVideo","spaceId":"00000000-0000-0000-0000-000000000000","files":[{}]}'