cURL
Nous ne recommandons pas d’utiliser l’intégration cURL en production, mais elle peut être pratique pour un test rapide lorsque vous n’avez pas de SDK sous la main.
Installer
brew install curl jq || sudo apt install curl jq
Exemple
L’en-tête Transloadit-Client identifie cURL et sa version installée pour faciliter le débogage.
# 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
Requête signée
Lorsque Signature Authentication est obligatoire, chaque requête doit
inclure une signature correspondant exactement à ses
params. La CLI transloadit, fournie avec
@transloadit/node, ajoute votre Auth Key et une date d’expiration, puis affiche
params signé et sa signature.
Elle lit vos informations d’authentification dans l’environnement :
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
Sans Node.js, calculez la même signature avec OpenSSL : un HMAC-SHA384 de la chaîne
params exacte, avec votre Auth Secret comme clé.
# 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
Envoyez params comme champ de formulaire, comme dans ces exemples.
L’API n’accepte pas de corps de requête JSON.