Pede as URLs de envio direto de várias mídias de uma vez (envio em massa)
POST/api/media/upload-urls
- Auth
- Requires a token
- X-CommunityId
X-CommunityIdSend the X-CommunityId of the community the operation happens in.
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
| Name | Type | Description |
|---|---|---|
X-CommunityIdoptional | string (uuid) | ID da comunidade em que a operação acontece. Obrigatório na maioria dos endpoints com escopo de comunidade. |
Request body application/json
| Name | Type | Description |
|---|---|---|
purposerequired | contentVideo | eventRecording | galleryImage | classifiedImage | parcelPhoto | supportPhoto | |
spaceIdrequired | string (uuid) | |
filesrequired | object[] | |
files[].namerequired | string | max 255 |
files[].mimeTyperequired | string | |
files[].sizerequired | integer | Bytes. · ≥ 1 |
Responses
| Status | Description |
|---|---|
200 | URLs geradas (e os itens recusados). |
400 | Requisição inválida — falha de validação. |
401 | Token ausente, inválido ou expirado. |
403 | Autenticado, mas sem permissão para esta operação. |
404 | Recurso não encontrado. |
429 | Mais de 20 lotes ou de 300 arquivos por hora para este perfil, ou 100 envios sem confirmar. |
500 | Erro interno do servidor. |
curl example
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":[{}]}'