Aller au contenu
s3nd.sh

Fournisseur de stockage

s3nd avec AWS S3

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

createBucket()
import { createBucket } from 's3nd'

// 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, s3nd est le SDK AWS v3 avec la sémantique 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. Rien à stocker, rien à faire tourner.

Depuis la ligne de commande

Une configuration de départ, et ce qu’il reste à faire.

init écrit le fichier avec des références ${VAR} plutôt que des secrets, donc il est fait pour être versionné ; le fichier d’environnement qu’il désigne, non.

s3nd.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 transfers/ qui expire les objets après un jour ou deux.
  3. 03Lancez s3nd doctor. Il effectue les opérations dont s3nd a besoin et rapporte ce qui s’est passé.

Bon à savoir

Notes sur S3.

Adressage virtual-hosted

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

Les ACL sont désactivées par défaut

Les buckets créés après 2023 ont « bucket owner enforced » activé. Rendez les objets publics avec une bucket policy ou un CDN, et laissez l’option acl tranquille.

Nettoyage des expirés

expiresIn empêche un transfert 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 s3nd doctor passe au vert.

Déposez un fichier. Donnez le code.

Pointez-le sur le bucket que vous payez déjà. Rien à déployer, aucune inscription, personne au milieu.