# colis avec Scaleway Object Storage

> Livrez vos fichiers à vos clients depuis un bucket Scaleway Object Storage avec colis : la configuration createBucket(), le fichier de départ de la CLI, et ce qu’il faut savoir sur ce fournisseur.

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

Des régions européennes, compatible S3, et la région veut vraiment dire quelque chose.

**createBucket()**
```ts
import { createBucket } from '@colis/core'

const store = createBucket({
  bucket: 'transfers',
  region: 'fr-par',
  endpoint: 'https://s3.fr-par.scw.cloud',
  credentials: {
    accessKeyId: process.env.SCW_ACCESS_KEY!,
    secretAccessKey: process.env.SCW_SECRET_KEY!,
  },
})
```

## Pourquoi celui-ci
L’Object Storage de Scaleway est compatible S3 avec une différence à connaître : il utilise la région. Passez fr-par, nl-ams ou pl-waw explicitement plutôt que de laisser l’endpoint la mettre à "auto".

## Un fichier de départ, et ce qu’il reste à faire.
init écrit le fichier avec des références ${VAR} plutôt que des secrets : il est fait pour être versionné ; le fichier d’environnement qu’il désigne, non.

```sh
colis init --provider scaleway --bucket transfers
```
**colis.config.json**
```json
{
  "bucket": "transfers",
  "region": "fr-par",
  "endpoint": "https://s3.fr-par.scw.cloud",
  "prefix": "transfers",
  "expiresIn": "24h",
  "envFile": ".env",
  "credentials": {
    "accessKeyId": "${SCW_ACCESS_KEY}",
    "secretAccessKey": "${SCW_SECRET_KEY}"
  }
}
```

### Ensuite
1. Mettez SCW_ACCESS_KEY et SCW_SECRET_KEY dans .env.
2. Ajoutez une règle de cycle de vie sur le préfixe.
3. Lancez `colis verifier`. Il effectue les opérations dont colis a besoin et rapporte ce qui s’est passé.

## Notes sur Scaleway.
- **La région est réelle** — L’endpoint porte la région et la signature doit être d’accord avec elle. Écrivez les deux, dans la même région.
- **Gros fichiers** — Les gros fichiers vont du navigateur au bucket, par morceaux. Le bucket a besoin d’une règle CORS qui autorise PUT depuis votre page de livraison et expose ETag ; sans elle, les petits fichiers passent quand même.
- **Nettoyage des expirés** — L’expiration empêche un colis d’être remis ; seule une règle de cycle de vie supprime l’objet. Donnez au préfixe une règle qui expire les objets après un jour ou deux, et colis verifier passe au vert.

[Le guide complet](https://colis-docs.vercel.app/docs/stockages)
