Aller au contenu
s3nd.sh

Exemples

Exécutables, dans le dépôt.

Deux exemples à cloner et lancer, et les guides pas à pas de la documentation. Les deux exemples pointent sur un MinIO local par défaut, donc le vrai chemin de code tourne sur votre laptop sans inscription nulle part.

un bucket sur votre laptop
docker 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"

01examples/indexeddb-sync

Synchronisation IndexedDB

Une app de notes qui garde tout dans IndexedDB et le déplace vers un autre appareil avec un code. Ouvrez-la dans deux navigateurs : le second est vide jusqu’à ce que le code transporte la base.

À remarquer

  • Une paire exportDatabase / importDatabase complète contre un vrai object store
  • Le code affiché groupé par quatre, et normalisé côté serveur avec ou sans les espaces
  • Rien n’est importé avant que l’utilisateur confirme ce qu’il s’apprête à restaurer
  • ifAbsent à l’écriture, une expiration d’une heure, et le DELETE après un import réussi
  • Une seule transaction à l’import, pour qu’un échec à mi-chemin laisse les données précédentes intactes
Next.jsIndexedDBs3ndMinIO
lancer
cp .env.example .env.local
bun install
bun run dev   # localhost:3200, in two different browsers

02examples/node-script

Aller-retour en Node

Un transfert entier dans un seul fichier : écrire un snapshot sous un code, le relire via une version mal tapée de ce code, prouver que les écritures conditionnelles fonctionnent, puis le brûler. Un smoke test pour un nouveau bucket ou fournisseur.

À remarquer

  • Le taux de compression sur un dump réaliste, affiché en titre
  • Un code tapé en minuscules avec un tiret, résolu par codes.normalize()
  • ifAbsent qui rejette une seconde réservation, ifMatch qui rejette une écriture périmée
  • destroy() dans un finally, pour que le script sorte sans attendre les sockets keep-alive
NodeTypeScripts3nd
lancer
cp .env.example .env
bun install
node --env-file=.env --import tsx src/round-trip.ts
sortie attendue
code      ZZWMBSTD
stored    1826 bytes gzipped, from 22991 raw (12.6x)
typed     "zzwm-bstd" → ZZWMBSTD
restored  200 notes from node-script, written 2026-08-27T14:29:20.442Z
identical true
claim     rejected as PRECONDITION_FAILED
ifMatch   rejected as PRECONDITION_FAILED
burned    gone

Essayez en une minute

Sans rien cloner.

  1. 01

    Lancez MinIO avec la commande ci-dessus et créez un bucket.

  2. 02

    Écrivez une configuration de départ et vérifiez-la.

  3. 03

    Déplacez un fichier, et récupérez-le avec un code tapé n’importe comment.

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.