Aller au contenu
s3nd.sh

Fournisseur de stockage

s3nd avec MinIO

Une commande Docker, et le vrai chemin de code tourne sur votre laptop et en CI.

createBucket()
import { createBucket } from 's3nd'

const store = createBucket({
  bucket: 'transfers',
  endpoint: 'http://localhost:9000',
  credentials: { accessKeyId: 'minioadmin', secretAccessKey: 'minioadmin' },
})

Pourquoi celui-ci

MinIO

Un MinIO local est la façon la moins chère d’exercer s3nd pour de vrai : le même PutObject avec les mêmes en-têtes conditionnels, aucun identifiant à créer et aucun réseau à attendre. Les exemples du dépôt le visent par défaut.

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",
  "endpoint": "http://localhost:9000",
  "forcePathStyle": true,
  "prefix": "transfers",
  "expiresIn": "1h",
  "credentials": { "accessKeyId": "minioadmin", "secretAccessKey": "minioadmin" }
}

Ensuite

  1. 01docker run -p 9000:9000 -p 9001:9001 -e MINIO_ROOT_USER=minioadmin -e MINIO_ROOT_PASSWORD=minioadmin quay.io/minio/minio server /data --console-address ":9001"
  2. 02Créez le bucket transfers depuis la console sur http://localhost:9001.
  3. 03Lancez s3nd doctor. Il effectue les opérations dont s3nd a besoin et rapporte ce qui s’est passé.

Bon à savoir

Notes sur MinIO.

Adressage path-style

Les passerelles auto-hébergées exigent https://endpoint/bucket/key. Définir un endpoint l’active ; la configuration de départ l’écrit explicitement pour que l’intention soit visible.

Auto-hébergé en production aussi

La même configuration, avec de vrais identifiants et TLS, tourne contre un cluster MinIO ou n’importe quelle passerelle Ceph, Garage ou SeaweedFS qui implémente le PutObject conditionnel.

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.