Saltar al contenido

Pede a URL de envio direto de uma mídia

POST/api/media/upload-url

Auth
Requiere token
X-CommunityId
X-CommunityId Envía el X-CommunityId de la comunidad en la que ocurre la operación.
Las descripciones de los endpoints vienen de la especificación de la API y, por ahora, están en portugués. La interfaz alrededor está traducida.

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

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

Cuerpo de la solicitud application/json

NombreTipoDescripción
purposeobligatoriocontentVideo | eventRecording | galleryImage | classifiedImage
spaceIdobligatoriostring (uuid)
nameobligatoriostringmax 255
mimeTypeobligatoriostring
sizeobligatoriointegerBytes. · ≥ 1

Respuestas

CódigoDescripción
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.

Ejemplo con 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}'