Aller au contenu
colis

Fournisseur de stockage

colis avec AWS S3

Les identifiants viennent de la chaîne de fournisseurs : une Lambda ou une tâche ECS n’a besoin d’aucune clé.

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

// Credentials from the AWS provider chain: env, shared config, or the role.
const store = createBucket({
  bucket: process.env.S3_BUCKET,
  region: 'eu-west-3',
  prefix: 'transfers',
  maxSize: 4 * 1024 * 1024,
})

Pourquoi celui-ci

AWS S3

Sur AWS, colis, c’est le SDK AWS v3 avec les règles de transfert par-dessus. Omettez les identifiants et la chaîne de fournisseurs par défaut s’applique : variables d’environnement, fichier de configuration partagé, ou rôle attaché à l’instance, à la tâche ou à la fonction.

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.

colis.config.json
{
  "bucket": "transfers",
  "region": "eu-west-3",
  "prefix": "transfers",
  "expiresIn": "24h"
}

Ensuite

  1. 01Donnez des identifiants à la machine de la façon habituelle : AWS_ACCESS_KEY_ID et AWS_SECRET_ACCESS_KEY, un profil, ou un rôle.
  2. 02Ajoutez une règle de cycle de vie sur le préfixe qui expire les objets après un jour ou deux.
  3. 03Lancez colis verifier. Il effectue les opérations dont colis a besoin et rapporte ce qui s’est passé.

À savoir

Notes sur S3.

Adressage virtual-hosted

Sans endpoint, colis laisse l’adressage path-style désactivé, ce qu’attend S3 lui-même. Ne définissez forcePathStyle que si une passerelle devant l’exige.

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.

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.