# Une drop box pour votre équipe

> Une route sur votre propre domaine, un jeton par personne, et un code au lieu d’un envoi dans la messagerie. Comment le construire avec s3nd, à quoi faire attention, et le guide complet.

Canonical: https://s3nd.sh/fr/use-cases/team-drop-box · Markdown: https://s3nd.sh/fr/use-cases/team-drop-box.md · English: https://s3nd.sh/use-cases/team-drop-box

Une route sur votre propre domaine, un jeton par personne, et un code au lieu d’un envoi dans la messagerie.

```ts
import { createBucket, createTransferHandler } from 's3nd'

const tokens = new Set(process.env.DROP_TOKENS!.split(','))

export const { GET, POST, DELETE } = createTransferHandler({
  bucket: createBucket({ bucket: 'drop' }),
  expiresIn: 24 * 3600,
  raw: 'redirect', // downloads go straight from the bucket, presigned
  authorize: (request) => tokens.has(request.headers.get('authorization')?.replace('Bearer ', '') ?? ''),
})

// $ s3nd --remote https://drop.example.com/api/transfers --token $TOKEN put ./deck.pdf
```

## Ce qui se passe vraiment.
### Le problème
Dans une équipe, les fichiers circulent en pièces jointes et en envois dans la messagerie, chacun une copie sur les serveurs de quelqu’un d’autre. Donner les clés du bucket à tout le monde n’est pas une option, et un lecteur partagé est un autre genre de désordre.

### Ce que s3nd y fait
Montez le handler de transfert sur un domaine à vous et passez une fonction authorize qui vérifie un jeton. Chaque personne a un jeton, pas une clé. La CLI le vise avec --remote, un navigateur utilise les mêmes quatre routes via les hooks React, et curl fonctionne aussi. Les fichiers atterrissent dans votre bucket sous un code et expirent tout seuls.

## Les choses faciles à rater.
- **Limitez le débit de la lecture** — Un code est un jeton au porteur et quarante bits sont tout le secret. Une limite de débit sur GET /:code est ce qui rend la devinette inutile.
- **raw: redirect pour les gros fichiers** — Avec, un téléchargement répond 302 avec une URL présignée, donc les octets ne transitent jamais deux fois par votre serveur. Sans, ils y passent en streaming, ce qui va bien pour de petits fichiers et coûte cher pour de gros.
- **doctor --remote comme smoke test** — Il fait l’aller-retour d’un vrai transfert contre le déploiement et sort avec un code non nul en cas d’échec. Mettez-le dans le pipeline de déploiement.

Packages: s3nd, @s3nd/cli. [Mettre en place un serveur, en détail](https://doc.s3nd.sh/docs/server)
