Aller au contenu

Envoi vers S3

Par défaut, les PDF générés sont déposés sur notre CDN et accessibles par des URL signées. Avec l’intégration S3, ils partent directement dans votre propre bucket.

Ce mode vous apporte :

  • La simplicité — les PDF arrivent directement dans votre stockage existant, sans étape de téléchargement puis de renvoi
  • La confidentialité — nous ne stockons pas vos documents, même temporairement
  • Le contrôle — votre bucket, votre politique de conservation, vos règles d’accès

Tout stockage compatible S3 fonctionne :

FournisseurURL de l’endpoint
Amazon S3https://s3.amazonaws.com ou https://s3.{region}.amazonaws.com
Cloudflare R2https://{account_id}.r2.cloudflarestorage.com
DigitalOcean Spaceshttps://{region}.digitaloceanspaces.com
MinIOL’URL de votre endpoint MinIO
Backblaze B2https://s3.{region}.backblazeb2.com
Wasabihttps://s3.{region}.wasabisys.com

Créez un bucket pour vos PDF générés. Un bucket dédié (ou au moins un préfixe dédié) garde les choses en ordre.

Créez un utilisateur IAM ou une clé d’accès avec des permissions minimales. Nous n’avons besoin que d’envoyer des fichiers, rien d’autre.

Politique minimale (envoi uniquement) :

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:PutObject"],
"Resource": "arn:aws:s3:::your-bucket-name/*"
}
]
}

Cette permission suffit aussi au test de connexion du tableau de bord : il dépose un fichier vide nommé .templatefox-connection-test sous le préfixe par défaut de votre bucket.

Pourquoi le moindre privilège ? Si ces identifiants fuitaient un jour, les dégâts resteraient limités : ils ne peuvent qu’écrire dans un seul bucket. N’utilisez jamais les identifiants racine de votre compte AWS.

Ouvrez S3 Storage dans le menu du tableau de bord et saisissez vos identifiants :

  • Endpoint URL — en HTTPS obligatoirement
  • Access Key ID
  • Secret Key — stockée chiffrée, jamais renvoyée en clair par l’API
  • Default Bucket
  • Default Folder — facultatif, par exemple generated/pdfs/

Cliquez sur Test Configuration pour vérifier la connexion, puis sur Save Configuration.

Ajoutez store_s3: true à votre requête de génération de PDF :

Fenêtre de terminal
curl -X POST https://api.templatefox.com/v1/pdf/create \
-H "x-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"template_id": "HMQywVpZxqAM",
"data": {
"customer_name": "Acme Corp",
"invoice_number": "INV-001"
},
"store_s3": true,
"filename": "invoice-001"
}'

Réponse :

{
"s3_bucket": "my-pdf-bucket",
"s3_key": "generated/pdfs/invoice-001.pdf",
"filename": "invoice-001.pdf",
"credits_remaining": 99
}
ParamètreDescription
s3_filepathRemplace le préfixe par défaut pour cette requête
s3_bucketUtilise un autre bucket pour cette requête
filenameNom de fichier personnalisé (sans l’extension .pdf)

Exemple avec un chemin personnalisé :

{
"template_id": "HMQywVpZxqAM",
"data": { "..." },
"store_s3": true,
"s3_filepath": "customers/acme/invoices/",
"filename": "INV-2026-001"
}

Résultat : customers/acme/invoices/INV-2026-001.pdf

Archivage et conformité — conservez factures, contrats ou reçus dans votre propre stockage, avec votre propre politique de conservation. Utile pour le RGPD, HIPAA, SOC 2, ou simplement vos règles internes.

Intégration à vos workflows existants — si votre application lit déjà dans S3 (pour servir des fichiers, traiter des documents ou déclencher des fonctions Lambda), les PDF générés s’y intègrent directement.

Multirégion et souveraineté des données — stockez vos documents dans une région AWS ou un pays précis pour répondre aux exigences légales.

Intégration à un CDN — placez votre bucket derrière CloudFront, Cloudflare ou un autre CDN pour une distribution rapide dans le monde entier, sur votre propre domaine.

Vos identifiants sont protégés :

  • Chiffrés au repos — les clés secrètes sont chiffrées avec Fernet
  • Jamais exposés — les réponses de l’API ne montrent que les 4 derniers caractères de la clé secrète (par exemple ••••EKEY)
  • Isolés par équipe — la configuration appartient à votre équipe : seuls ses membres et ses clés API y ont accès
  • HTTPS obligatoire — toutes les URL d’endpoint doivent être en HTTPS

La documentation complète des endpoints est dans Stockage S3, dans la référence API.