# Fournisseurs de stockage

> colis fonctionne avec AWS S3 et tout stockage compatible S3 : Cloudflare R2, MinIO, Scaleway Object Storage, Wasabi. Seul l’endpoint change, la CLI écrit un fichier de départ pour chacun, et verifier dit si ça marche.

Canonical: https://colis-site.vercel.app/providers · Markdown: https://colis-site.vercel.app/providers.md · English: https://colis-site.vercel.app/en/providers

Vos colis vivent dans votre propre bucket. Indiquez un endpoint et colis ajuste les deux réglages qu’attendent les fournisseurs compatibles S3 ; les deux restent modifiables. La CLI écrit un fichier de départ pour chaque fournisseur, et verifier vous dit si ça marche vraiment.

```ts
const store = createBucket({
  bucket: 'livraisons',
  endpoint: 'https://…',   // set this, and two defaults follow:
  // region: 'auto'        // for providers that ignore the region
  // forcePathStyle: true  // https://endpoint/bucket/key
})
```

## Choisissez le vôtre.
- [Cloudflare R2 (colis init --provider r2): Compatible S3, la région est toujours "auto", et le tableau de bord accepte la règle CORS en JSON.](https://colis-site.vercel.app/providers/cloudflare-r2)
- [AWS S3 (colis init --provider aws): Les identifiants viennent de la chaîne de fournisseurs : une Lambda ou une tâche ECS n’a besoin d’aucune clé.](https://colis-site.vercel.app/providers/aws-s3)
- [MinIO (colis init --provider minio): Une commande Docker, et tout le parcours de livraison tourne sur votre laptop.](https://colis-site.vercel.app/providers/minio)
- [Scaleway Object Storage (colis init --provider scaleway): Des régions européennes, compatible S3, et la région veut vraiment dire quelque chose.](https://colis-site.vercel.app/providers/scaleway)
- [Wasabi (colis init --provider wasabi): Compatible S3, sur un endpoint régional.](https://colis-site.vercel.app/providers/wasabi)

Pas dans la liste ? Tout autre stockage compatible S3 fonctionne de la même façon : un endpoint, une paire de clés, et `colis verifier` pour confirmer que les écritures conditionnelles sont respectées. [La CLI](https://colis-site.vercel.app/cli) donne les détails.

## Une règle CORS, pour les envois qui contournent la fonction.
Les gros fichiers vont du navigateur directement au bucket. Le bucket doit autoriser `PUT` depuis votre page de livraison et la laisser lire l’`ETag` de chaque réponse. Sans cette règle, les petits fichiers fonctionnent toujours.

```json
[
  {
    "AllowedOrigins": ["https://drop.example.com"],
    "AllowedMethods": ["PUT"],
    "AllowedHeaders": ["*"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
```

Sur AWS S3, collez-la sous Permissions → Cross-origin resource sharing ; le tableau de bord Cloudflare R2 prend le même JSON dans les réglages du bucket. Ajoutez `http://localhost:3400` pour essayer en développement.
