Pular para o conteúdo

Pede a URL de envio direto de uma mídia

POST/api/media/upload-url

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

Substituiu o antigo envio de vídeo pelo servidor (100 MB, URL pública), removido. Confere finalidade, space, permissão, tipo, extensão e tamanho **antes de assinar** e devolve um `PUT` pré-assinado de 10 minutos amarrado à chave, ao `Content-Type` e ao tamanho exatos. O navegador envia direto ao S3 e depois chama `POST /api/media/confirm`.

Finalidades (o space precisa ser do módulo certo): - `contentVideo`: vídeo (MP4, WebM, MOV) de um post, até **2 GB**; space `content` ou `feed`; quem o `canCreate` do space permite. Em comunidade com streaming nativo ligado, a confirmação enfileira a conversão para HLS (`processingStatus`: `queued` → `processing` → `ready`/`failed`). - `eventRecording`: gravação (vídeo) de um evento, até 2 GB; space `events`; só a equipe. - `galleryImage`: imagem (JPG, PNG, WEBP, GIF) até 20 MB; space `gallery`; quem o `canCreate` permite. - `classifiedImage`: imagem até 20 MB; space `classifieds`; quem o `canCreate` permite.

A mídia nova é **sempre privada**, com link assinado, mesmo em space público; o que foi enviado antes continua com a URL de sempre. Os limites de uso da comunidade só avisam (veja o `confirm`).

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
spaceIdobrigatóriostring (uuid)
nameobrigatóriostringmax 255
mimeTypeobrigatóriostring
sizeobrigatóriointegerBytes. · ≥ 1

Respostas

CódigoDescrição
200URL de envio.
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 60 envios por hora para este perfil.
500Erro interno do servidor.

Exemplo com curl

curl -X POST "https://api.memberfy.net/api/media/upload-url" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"purpose":"contentVideo","spaceId":"00000000-0000-0000-0000-000000000000","name":"string","mimeType":"video/mp4","size":1}'