Saltar al contenido

Pede a URL de envio direto de vídeo ou arquivo da aula

POST/api/courses/lesson/{lessonId}/media/upload-url

Auth
Requiere token
Quién puede:
owner
admin
moderator
finance
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.

Só owner e admin (moderador, financeiro e membro recebem 403). A aula precisa ser do tipo `video` ou `file` (senão 400 em `lessonId`). A API confere o tipo MIME e o tamanho **antes de assinar** e devolve uma URL assinada de escrita (`PUT`, vale 10 minutos) **amarrada à chave, ao `Content-Type` e ao tamanho exatos**: o S3 recusa envio diferente do declarado. O navegador envia o arquivo **direto ao S3** (sem passar pela API), com `Content-Type` igual ao de `headers` e o corpo com exatamente `size` bytes. Depois chame `POST .../media/confirm` com a `key`.

- **Vídeo** (aula `video`): `video/mp4`, `video/webm`, `video/quicktime`; até **500 MB**. Sem transcodificação: toca o que o navegador toca (MP4 H.264 é o seguro). - **Arquivo** (aula `file`): PDF, Word, Excel, PowerPoint (antigos e `.docx/.xlsx/.pptx`), ZIP, PNG, JPEG, GIF, WebP; até **50 MB**. SVG, HTML, JS e executáveis são recusados.

A chave (`courses/{communityId}/{courseId}/{lessonId}/{uuid}.{ext}`) nunca leva texto do usuário. Os limites de armazenamento da comunidade só avisam (veja a resposta do `confirm`), nunca recusam o envio. Nada muda na aula até a confirmação; cancelar ou falhar deixa tudo como estava.

Parámetros

NombreDóndeTipoDescripción
lessonIdobligatoriopathstring (uuid)

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
nameobligatoriostringNome original, guardado só para exibir e para o download. · max 255
mimeTypeobligatoriostring
sizeobligatoriointegerBytes do arquivo. · ≥ 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.
500Erro interno do servidor.

Ejemplo con curl

curl -X POST "https://api.memberfy.net/api/courses/lesson/<lessonId>/media/upload-url" \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-CommunityId: $COMMUNITY_ID" \
  -H "Content-Type: application/json" \
  -d '{"name":"string","mimeType":"video/mp4","size":1}'