Vai al contenuto

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

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

Auth
Richiede un token
Chi può:
owner
admin
moderator
finance
X-CommunityId
X-CommunityId Invia l’X-CommunityId della community in cui avviene l’operazione.
Le descrizioni degli endpoint provengono dalla specifica dell’API e per ora sono in portoghese. L’interfaccia intorno è tradotta.

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.

Parametri

NomeDoveTipoDescrizione
lessonIdobbligatoriopathstring (uuid)

Header

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

Corpo della richiesta application/json

NomeTipoDescrizione
nameobbligatoriostringNome original, guardado só para exibir e para o download. · max 255
mimeTypeobbligatoriostring
sizeobbligatoriointegerBytes do arquivo. · ≥ 1

Risposte

CodiceDescrizione
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.

Esempio 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}'