cURL
Não recomendamos usar a integração com cURL em produção, mas ela pode ser útil para um teste rápido quando você não tem um SDK à mão.
Instalar
brew install curl jq || sudo apt install curl jq
Exemplo
O cabeçalho Transloadit-Client identifica o cURL e a versão instalada para ajudar na depuração.
# Prerequisites: brew install curl jq || sudo apt install curl jq
# To avoid tampering, use Signature Authentication
echo '{
"template_id": "YOUR_TEMPLATE_ID",
"auth": {
"key": "YOUR_TRANSLOADIT_KEY"
},
"steps": {}
}' | curl \
--request POST \
--header "Transloadit-Client: curl:$(curl --version | awk 'NR == 1 {print $2}')" \
--form 'params=<-' \
--form myfile1=@./joe-gardner-149699.jpg \
https://api2.transloadit.com/assemblies | jq
Requisição assinada
Quando a Signature Authentication é obrigatória, cada requisição
precisa de uma signature para seus params exatos.
A CLI transloadit, incluída no @transloadit/node, adiciona sua
Auth Key e uma data de expiração e depois imprime os params assinados
e sua signature. Ela lê suas credenciais do ambiente:
export TRANSLOADIT_KEY="YOUR_TRANSLOADIT_KEY"
export TRANSLOADIT_SECRET="YOUR_TRANSLOADIT_SECRET"
signed=$(echo '{"template_id": "YOUR_TEMPLATE_ID"}' | npx -y @transloadit/node signature)
curl \
--request POST \
--form-string "params=$(jq -r .params <<<"$signed")" \
--form-string "signature=$(jq -r .signature <<<"$signed")" \
--form myfile1=@./joe-gardner-149699.jpg \
https://api2.transloadit.com/assemblies | jq
Sem Node.js, calcule a mesma assinatura com o OpenSSL: um HMAC-SHA384 da string
params exata, usando seu Auth Secret como chave.
# One hour from now, in UTC (BSD/macOS date first, then GNU date)
format='%Y/%m/%d %H:%M:%S+00:00'
expires=$(date -u -v+1H "+$format" 2>/dev/null || date -u -d '+1 hour' "+$format")
params=$(jq -nc --arg key "$TRANSLOADIT_KEY" --arg expires "$expires" \
'{auth: {key: $key, expires: $expires}, template_id: "YOUR_TEMPLATE_ID"}')
hmac=$(printf '%s' "$params" \
| openssl dgst -sha384 -hmac "$TRANSLOADIT_SECRET" | awk '{print $NF}')
signature="sha384:$hmac"
curl \
--request POST \
--form-string "params=$params" \
--form-string "signature=$signature" \
--form myfile1=@./joe-gardner-149699.jpg \
https://api2.transloadit.com/assemblies | jq
Envie params como campo de formulário, como nestes exemplos. A API não aceita um corpo de requisição JSON.