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

# Médias

> Importez, organisez et gérez vos fichiers et dossiers de médias

Les commandes de médias gèrent les fichiers et dossiers de votre médiathèque. La plupart des commandes
acceptent soit un **UUID**, soit un **nom** pour les fichiers et les dossiers — lorsqu'un nom correspond à
plusieurs éléments, la CLI vous demande d'en choisir un de façon interactive.

> [!NOTE]
>
> Les noms peuvent être préfixés par un UUID (par exemple `f200d255-...-photo.pdf`). La CLI extrait
> automatiquement l'UUID de tête, puis se rabat sur une recherche par nom si cette recherche échoue.

## Fichiers

### media:upload

Importe un fichier dans votre médiathèque. La CLI gère automatiquement la génération de l'URL pré-signée et
l'import vers S3.

```bash theme={null}
so-me media:upload [file] [options]
```

| Argument | Description |
| - | - |
| `[file]` | Chemin du fichier. Omettez-le pour qu'il vous soit demandé (le glisser-déposer est pris en charge — les guillemets et espaces environnants sont supprimés). |

| Option | Description |
| - | - |
| `--folder <id-or-name>` | Importe dans un dossier précis (résolu par UUID ou par nom) |

Le type MIME est déduit de l'extension du fichier. Extensions reconnues :

| Type | Extensions |
| - | - |
| Image | `.png`, `.jpg`, `.jpeg`, `.gif`, `.webp`, `.svg` |
| Vidéo | `.mp4`, `.mov`, `.avi`, `.webm` |
| Audio | `.mp3`, `.wav` |
| Document | `.pdf` |

Toute autre extension est importée en tant que `application/octet-stream`.

```bash Exemples theme={null}
# Upload an image
so-me media:upload ./photo.jpg

# Upload into a folder (by name)
so-me media:upload ./banner.png --folder "Campaign Assets"

# Interactive — prompts for a path (drag & drop a file)
so-me media:upload
```

```json Réponse theme={null}
{
  "fileId": "f200d255-...",
  "url": "https://cdn.so-me.studio/...",
  "filename": "photo.jpg",
  "size": 1024000
}
```

### media:list

Liste les fichiers et dossiers de médias. Avec `--folder`, liste le contenu de ce dossier ;
avec `--file`, renvoie les détails d'un seul fichier.

```bash theme={null}
so-me media:list [options]
```

| Option | Description |
| - | - |
| `--folder <id-or-name>` | Liste le contenu d'un dossier précis (résolu par UUID ou par nom) |
| `--file <id-or-name>` | Récupère les détails d'un fichier précis (résolu par UUID, nom préfixé par un UUID ou recherche par nom) |

```bash Exemples theme={null}
# List all media as a table
so-me media:list --table

# List files inside a folder
so-me media:list --folder "Campaign Assets"

# Get a specific file by name
so-me media:list --file "banner.png"
```

> [!TIP]
>
> Vous pouvez référencer les fichiers et dossiers par nom ou par UUID. Lorsque plusieurs éléments correspondent à un
> nom, la CLI vous demande d'en sélectionner un.

### media:search

Recherche des fichiers de médias par nom dans tous les dossiers.

```bash theme={null}
so-me media:search <term>
```

| Argument | Description |
| - | - |
| `<term>` | Terme de recherche comparé aux noms de fichiers |

```bash Exemple theme={null}
so-me media:search "banner"
```

### media:get

Récupère les métadonnées détaillées d'un fichier de médias à partir de son UUID.

```bash theme={null}
so-me media:get <id>
```

| Argument | Description |
| - | - |
| `<id>` | UUID du fichier |

```bash Exemple theme={null}
so-me media:get f200d255-1234-4abc-89de-0123456789ab
```

### media:delete

Supprime un ou plusieurs fichiers de médias, ou un seul dossier. Par défaut, le type de cible est
`file` ; passez `--type folder` pour supprimer un dossier à la place. Les éléments peuvent être référencés par
UUID ou par nom.

```bash theme={null}
so-me media:delete <items...> [options]
```

| Argument | Description |
| - | - |
| `<items...>` | Un ou plusieurs ID ou noms de fichiers/dossiers |

| Option | Description | Par défaut |
| - | - | - |
| `--type <type>` | Type de cible : `file` ou `folder` | `file` |
| `-y, --yes` | Ignore la demande de confirmation | — |

Lors de la suppression de fichiers, un fichier unique est supprimé directement tandis que plusieurs fichiers utilisent
l'endpoint de suppression groupée. Un seul dossier **à la fois** peut être supprimé.

```bash Exemples theme={null}
# Delete a file by name
so-me media:delete "old-photo.jpg"

# Delete multiple files, skipping confirmation
so-me media:delete file-id-1 file-id-2 -y

# Delete a folder and all its contents
so-me media:delete "Old Assets" --type folder
```

> [!WARNING]
>
> La suppression d'un dossier supprime tous les fichiers qu'il contient. Cette action est irréversible.

### media:bulk-delete

Supprime plusieurs fichiers de médias par UUID. Utile lorsque vous avez déjà les ID et souhaitez une
seule opération groupée.

```bash theme={null}
so-me media:bulk-delete <ids...> [options]
```

| Argument | Description |
| - | - |
| `<ids...>` | Un ou plusieurs UUID de fichiers |

| Option | Description |
| - | - |
| `-y, --yes` | Ignore la demande de confirmation |

```bash Exemples theme={null}
so-me media:bulk-delete file-id-1 file-id-2 file-id-3
so-me media:bulk-delete file-id-1 file-id-2 -y
```

### media:move

Déplace un fichier ou un dossier vers un autre emplacement. La source est résolue parmi les fichiers
et les dossiers — si un nom correspond à plusieurs éléments, il vous est demandé de choisir.

```bash theme={null}
so-me media:move <id-or-name> --to <folder-id-or-name>
```

| Argument | Description |
| - | - |
| `<id-or-name>` | ID ou nom du fichier ou du dossier à déplacer |

| Option | Description |
| - | - |
| `--to <folder-id-or-name>` | ID ou nom du dossier de destination, ou `root` **(obligatoire)** |

```bash Exemples theme={null}
# Move a file into a folder
so-me media:move "banner.png" --to "Campaign Assets"

# Move a file back to the root
so-me media:move "banner.png" --to root

# Move a folder into another folder
so-me media:move "Old Folder" --to "Archive"
```

### media:rename

Renomme un fichier ou un dossier. Par défaut, renomme un fichier ; passez `--type folder` pour renommer
un dossier.

```bash theme={null}
so-me media:rename <id-or-name> --name <new-name> [options]
```

| Argument | Description |
| - | - |
| `<id-or-name>` | ID ou nom du fichier ou du dossier |

| Option | Description | Par défaut |
| - | - | - |
| `--name <new-name>` | Nouveau nom **(obligatoire)** | — |
| `--type <type>` | Type de cible : `file` ou `folder` | `file` |

```bash Exemples theme={null}
so-me media:rename "banner.png" --name "launch-banner.png"
so-me media:rename "Assets" --name "2026 Assets" --type folder
```

***

## Dossiers

### media:folders

Liste tous les dossiers de médias.

```bash theme={null}
so-me media:folders
```

```bash Exemple theme={null}
so-me media:folders --table
```

### media:create-folder

Crée un dossier de médias, éventuellement imbriqué dans un dossier parent existant.

```bash theme={null}
so-me media:create-folder --name <name> [options]
```

| Option | Description |
| - | - |
| `--name <name>` | Nom du dossier **(obligatoire)** |
| `--parent <id-or-name>` | ID ou nom du dossier parent (crée un dossier imbriqué) |

```bash Exemples theme={null}
# Create a top-level folder
so-me media:create-folder --name "Campaign Assets"

# Create a nested folder under an existing parent
so-me media:create-folder --name "Q3" --parent "Campaign Assets"
```

### media:rename-folder

Renomme un dossier de médias. (Équivaut à `media:rename --type folder`.)

```bash theme={null}
so-me media:rename-folder <id-or-name> --name <new-name>
```

| Argument | Description |
| - | - |
| `<id-or-name>` | ID ou nom du dossier |

| Option | Description |
| - | - |
| `--name <new-name>` | Nouveau nom **(obligatoire)** |

```bash Exemple theme={null}
so-me media:rename-folder "Assets" --name "2026 Assets"
```

### media:move-folder

Déplace un dossier dans un autre dossier parent. (Équivaut à exécuter `media:move` sur un
dossier.)

```bash theme={null}
so-me media:move-folder <id-or-name> --to <parent-id-or-name>
```

| Argument | Description |
| - | - |
| `<id-or-name>` | ID ou nom du dossier |

| Option | Description |
| - | - |
| `--to <parent-id-or-name>` | ID ou nom du dossier parent cible, ou `root` **(obligatoire)** |

```bash Exemples theme={null}
# Nest a folder under another
so-me media:move-folder "Q3" --to "Campaign Assets"

# Move a folder back to the root
so-me media:move-folder "Q3" --to root
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.