Fournisseur de stockage
colis avec Scaleway Object Storage
Des régions européennes, compatible S3, et la région veut vraiment dire quelque chose.
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
Scaleway Object Storage
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".
En ligne de commande
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.
{
"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
- 01Mettez SCW_ACCESS_KEY et SCW_SECRET_KEY dans .env.
- 02Ajoutez une règle de cycle de vie sur le préfixe.
- 03Lancez
colis verifier. Il effectue les opérations dont colis a besoin et rapporte ce qui s’est passé.
À savoir
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.
Autres fournisseurs
Seul l’endpoint change.
Vous envoyez. Ils valident. Vous le savez.
Votre stockage, une page de livraison à votre nom, un webhook à chaque étape. Rien d’hébergé chez un tiers.