> ## Documentation Index
> Fetch the complete documentation index at: https://docs.solya.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Stockage

> Backends de stockage de fichiers, configuration et accès par URL signée.

Solya stocke les fichiers téléchargés (par ex. images de produits) via une petite abstraction de stockage avec
deux backends.

## Backends

| Backend                       | `STORAGE_TYPE` | Utilisation                                     |
| ----------------------------- | -------------- | ----------------------------------------------- |
| **Système de fichiers local** | `local`        | Développement.                                  |
| **S3 / Compatible S3**        | `s3`           | Production (AWS S3 ou Scaleway Object Storage). |

Le backend est sélectionné par la variable d'environnement `STORAGE_TYPE`.

## Configuration

**Local :**

* `STORAGE_LOCAL_PATH` — répertoire du système de fichiers (défaut `public/uploads`).
* `STORAGE_LOCAL_URL` — préfixe d'URL public (défaut `/uploads`).

**S3 (AWS ou Scaleway) :**

* `S3_BUCKET_NAME` — le bucket.
* `AWS_REGION` — la région.
* `AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY` — identifiants (optionnel ; un rôle IAM est
  utilisé s'il est omis).
* `S3_ENDPOINT` — point de terminaison personnalisé pour les fournisseurs compatibles S3 (par ex. Scaleway).

## Accès via des URLs signées

Les fichiers sont stockés de manière privée. L'application les sert via des **URLs pré-signées** générées à
la lecture, avec une expiration par défaut d'**une heure**. Le stockage local retourne des URLs directes (pas
d'expiration). Une nouvelle signature est produite à chaque fois, donc les URLs signées ne sont pas mises en cache.

<Note>
  Les clés d'objet sont organisées par organisation, gardant les fichiers de chaque tenant séparés. La
  couche de stockage est plain file I/O ; tout traitement d'image se fait en amont dans les
  handlers de téléchargement.
</Note>
