Stockage S3
Connectez un bucket Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Google Cloud Storage ou de tout stockage compatible S3. Les agents listent, lisent, écrivent et suppriment ses objets ; la clé secrète reste chez Sallyport.
Sur cette page
L’agent nomme un objet. Sallyport signe la requête avec AWS Signature V4, l’envoie à votre bucket et renvoie la réponse. L’agent ne voit jamais la clé d’accès ni son secret.
Connecter un bucket
- Ouvrez Ajouter une clé de service et choisissez « Stockage S3 » dans « Source de la clé ».
- Choisissez le « Stockage ». La « Région » et l’« Adresse du stockage » se remplissent seules ; changez la « Région » et l’adresse suit.
- Saisissez le « Bucket ». Les agents atteignent ce bucket et rien d’autre sur le stockage.
- Créez sur le stockage une clé qui n’atteint que ce bucket, puis collez son « ID de la clé d’accès » et sa « Clé d’accès secrète ».
- Le « Nom de la connexion » est le nom du bucket tant que vous ne le changez pas. Choisissez l’« Espace de travail » et l’« Environnement ».
- Appuyez sur « Enregistrer et vérifier la clé ». Sallyport scelle la clé, crée la connexion et liste avec elle un objet du bucket.
La page de la clé affiche le résultat sous « Où va cette clé ». Un secret faux y est refusé, dans les mots du stockage lui-même, avant qu’un agent ne l’essaie. Tous les agents de l’espace de travail peuvent utiliser le bucket dès qu’il est enregistré.
| Stockage | Adresse du stockage | Région |
|---|---|---|
| Amazon S3 | https://s3.<region>.amazonaws.com. Le bucket va dans le nom d’hôte : https://<bucket>.s3.<region>.amazonaws.com. | La région du bucket, par exemple eu-central-1. |
| Cloudflare R2 | L’adresse de l’API S3 de la vue d’ensemble R2 : https://<account-id>.r2.cloudflarestorage.com. | auto |
| Backblaze B2 | https://s3.<region>.backblazeb2.com | La région de l’adresse du bucket, par exemple eu-central-003. |
| Wasabi | https://s3.<region>.wasabisys.com | La région du bucket, par exemple eu-central-1. |
| DigitalOcean Spaces | https://<region>.digitaloceanspaces.com | Le centre de données, par exemple fra1. |
| Google Cloud Storage | https://storage.googleapis.com, avec une clé HMAC d’un compte de service. | auto |
| Autre stockage compatible S3 | L’adresse HTTPS de son API S3 : MinIO, Hetzner, Scaleway, OVH, IDrive e2 et d’autres. | La région pour laquelle il signe ; us-east-1 s’il n’en indique aucune. |
Ce que l’agent appelle
Les outils du bucket se terminent par _read et _write. Leur description dit à l’agent comment lister, lire, écrire et supprimer : il n’a rien à deviner. Le chemin est le chemin S3 complet : sur tous les stockages sauf Amazon S3, il commence par le bucket.
{
"method": "GET",
"path": "/reports/",
"params": { "list-type": "2", "prefix": "notes/" }
}{
"method": "PUT",
"path": "/reports/notes/2026-09-30.md",
"headers": { "Content-Type": "text/markdown", "x-amz-meta-author": "agent" },
"body": "# Weekly notes",
"intent": "Enregistrer les notes de la semaine"
}Une lecture est GET /reports/notes/2026-09-30.md. Une copie est un PUT avec x-amz-copy-source: /reports/notes/2026-09-30.md. Une suppression est DELETE /reports/notes/2026-09-30.md. Les réponses sont le XML de S3 lui-même.
Quels appels vous attendent
| Appel | Classe |
|---|---|
GET et HEAD : un listage, un téléchargement, les métadonnées d’un objet | Lecture |
PUT et POST : un envoi, une copie, un envoi en plusieurs parties | Écriture |
POST ?delete, qui supprime de nombreux objets à la fois | Écriture |
DELETE | Destructive |
Le nom d’un objet ne change jamais sa classe : lire builds/run.log est une lecture. Les appels passent sans demander tant que vous n’en décidez pas autrement ; les règles sont dans la liste « Accès » de l’agent. Voir Approbations.
Gros fichiers et données binaires
Les outils MCP transportent du texte : CSV, JSON, logs, Markdown. Pour des fichiers de tout type, envoyez les octets par le proxy HTTP avec le jeton de l’agent. Le chemin après /p/<connection-id> est la clé de l’objet dans le bucket.
export SP_AGENT_TOKEN='<agent-token>'
curl --fail-with-body -X PUT \
-H "Authorization: Bearer $SP_AGENT_TOKEN" \
-H 'Content-Type: application/pdf' \
-H 'X-Sallyport-Intent: Store the signed contract' \
--data-binary @contract.pdf \
"https://mcp.sallyport.cloud/p/<connection-id>/contracts/2026/acme.pdf"
curl --fail-with-body -H "Authorization: Bearer $SP_AGENT_TOKEN" \
-o acme.pdf "https://mcp.sallyport.cloud/p/<connection-id>/contracts/2026/acme.pdf"Un envoi par le proxy porte jusqu’à 32 Mio ; un téléchargement, jusqu’à 512 Mio. Découpez un fichier plus gros en envoi en plusieurs parties.