> For the complete documentation index, see [llms.txt](https://academy.shade.inc/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://academy.shade.inc/guides/guides-fr/configuration-et-migration/migration-massive-de-donnees-vers-shade-via-rclone.md).

# Migration massive de données vers Shade via Rclone

Comment migrer des données vers Shade via Rclone

### Gestion efficace des migrations et transferts de données

Voici un guide pour migrer de grandes quantités de données vers ou depuis votre drive Shade à l’aide de rclone, un puissant outil open source qui prend en charge de nombreuses sources différentes.

### Téléchargement de rclone

Le backend Shade est désormais disponible nativement dans rclone. Vous pouvez télécharger rclone depuis la [page de téléchargement officielle de rclone](https://rclone.org/downloads/).

### À propos de rclone

[rclone](https://rclone.org/) est un puissant programme en ligne de commande pour gérer les fichiers sur le stockage cloud. Il est souvent décrit comme « rsync pour le stockage cloud » et prend en charge plus de 70 fournisseurs de stockage cloud différents.

Les cas d’utilisation courants de rclone incluent :

* **Synchronisation et sauvegarde** des fichiers entre votre système local et le stockage cloud
* **Migration de données** d’un fournisseur cloud à un autre
* **Automatisation des workflows** avec des synchronisations et sauvegardes planifiées
* **Gestion de gros transferts de fichiers** avec reprise et contrôle de la bande passante
* **Opérations par lots** pour copier, déplacer ou supprimer des fichiers entre services cloud

Avec le backend rclone de Shade, vous pouvez tirer parti de toutes les puissantes fonctionnalités de rclone pour interagir directement avec vos drives Shade depuis la ligne de commande.

### Configuration

Voici un exemple de configuration de Shade.

D’abord, [créez un compte gratuit](https://app.shade.inc/) et choisissez un forfait.

Vous devrez vous connecter et obtenir la `clé API` et `l’ID du drive` pour votre compte depuis la section des paramètres de votre compte et du drive créé, respectivement.

Ouvrez maintenant une invite de commande ou un terminal, puis allez dans le dossier où vous avez téléchargé ce fichier, et exécutez

`./rclone config`\
\
(Si vous êtes sur un Mac, vous devrez indiquer à votre ordinateur que ce fichier peut être exécuté, donc exécutez

`chmod +x rclone` )

Puis suivez ce processus interactif :

```
e) Modifier un remote existant
n) Nouveau remote
d) Supprimer le remote
r) Renommer le remote
c) Copier le remote
s) Définir un mot de passe de configuration
q) Quitter la configuration
e/n/d/r/c/s/q> n

Entrez un nom pour le nouveau remote.
nom> Shade

Option Storage.
Type de stockage à configurer.
Choisissez un numéro ci-dessous, ou saisissez votre propre valeur.
(Faites défiler la liste et trouvez l’option Shade ; au 11/5/25, c’est la 52)
[AUTRES OPTIONS]
xx / Shade FS
   \ (shade)
[AUTRES OPTIONS]
Storage> xx

Option drive_id.
L’ID de votre drive ; voir cela dans les paramètres du drive. Les configurations rclone individuelles doivent être créées pour chaque drive.
Entrez une valeur.
drive_id> [YOUR_ID]

Option api_key.
Une clé API pour votre compte.
Entrez une valeur.
api_key> [YOUR_API_KEY]

Modifier la configuration avancée ?
y) Oui
n) Non (par défaut)
y/n> n

Configuration terminée.
Options :
- type : shade
- drive_id : [YOUR_ID]
- api_key : [YOUR_API_KEY]
Conserver ce remote « Shade » ?
y) Oui, c’est correct (par défaut)
e) Modifier ce remote
d) Supprimer ce remote
y/e/d> y

```

### Exemple de workflow : copier des fichiers vers Shade

Une fois votre remote Shade configuré, vous pouvez facilement copier des fichiers de votre système de fichiers local vers Shade. Voici un workflow courant :

#### Copier un dossier local vers Shade

Pour copier un dossier de votre système local vers votre drive Shade :

```bash
./rclone copy /path/to/local/folder Shade:/destination/folder
```

Par exemple, pour copier votre dossier « Projects » vers Shade :

```bash
./rclone copy ~/Projects Shade:/Projects
```

Cette commande va :

* Copier tous les fichiers du dossier local Projects vers Shade
* Conserver l’arborescence du dossier
* Ignorer les fichiers qui existent déjà et n’ont pas changé
* Afficher la progression pendant le transfert

#### Commandes utiles supplémentaires

**Synchroniser un dossier** (rend la destination identique à la source, suppressions comprises) :

```bash
./rclone sync ~/Projects Shade:/Projects
```

**Vérifier ce qui serait copié** sans copier réellement :

```bash
./rclone copy ~/Projects Shade:/Projects --dry-run
```

**Copier avec progression et statistiques**:

```bash
./rclone copy ~/Projects Shade:/Projects --progress --stats 1s
```

**Lister les fichiers de votre drive Shade**:

```bash
./rclone ls Shade:/
```

### Alternative : utiliser le backend S3 de rclone

Vous pouvez également connecter rclone à Shade via le point de terminaison compatible S3 de Shade, `https://s3.shade.inc`, en utilisant le backend S3 intégré de rclone. Cela peut être pratique si vous avez déjà des scripts ou workflows basés sur S3.

1. Dans Shade, allez dans **Paramètres > Intégrations > Clés API S3**, sélectionnez **Générer une clé API S3**, puis copiez l’identifiant de la clé d’accès et la clé d’accès secrète. Les clés S3 peuvent accéder à tous les drives auxquels vous avez un accès en modification.
2. Ajoutez un remote à votre fichier de configuration rclone (exécutez `./rclone config file` pour le trouver) :

```
[ShadeS3]
type = s3
provider = Other
access_key_id = YOUR_ACCESS_KEY_ID
secret_access_key = YOUR_SECRET_ACCESS_KEY
endpoint = https://s3.shade.inc
region = us-east-1
force_path_style = true
no_check_bucket = true
```

3. Utilisez l’ID de votre drive comme nom de bucket :

```bash
./rclone copy ~/Projects ShadeS3:YOUR_DRIVE_ID/Projects --progress
```

Chaque bucket correspond à un drive Shade existant, donc n’essayez pas de créer ou supprimer des buckets. L’API S3 de Shade prend en charge un sous-ensemble des actions S3 ; voir [Utilisation de l’API S3 de Shade](https://academy.shade.inc/developers/using-shades-s3-api) pour les actions prises en charge, la gestion des clés et le dépannage.

### Options standard

Voici les options standard spécifiques à shade (Shade FS).

**Remarque :** Pour la plupart des utilisateurs, il suffit de configurer `drive_id` et `api_key`. Les options avancées ci-dessous sont destinées à des cas d’utilisation spécifiques et peuvent être laissées avec leurs valeurs par défaut.

#### --shade-drive-id

L’ID de votre drive ; voir cela dans les paramètres du drive. Les configurations rclone individuelles doivent être créées pour chaque drive.

Propriétés :

* Config : drive\_id
* Var. d’env. : RCLONE\_SHADE\_DRIVE\_ID
* Type : chaîne
* Obligatoire : vrai

#### --shade-api-key

Une clé API pour votre compte. Vous pouvez la trouver sous Paramètres > Clés API

Propriétés :

* Config : api\_key
* Var. d’env. : RCLONE\_SHADE\_API\_KEY
* Type : chaîne
* Obligatoire : vrai

### Options avancées

Voici les options avancées spécifiques à shade (Shade FS).

#### --shade-endpoint

Point de terminaison du service.

Laissez normalement vide.

Propriétés :

* Config : endpoint
* Var. d’env. : RCLONE\_SHADE\_ENDPOINT
* Type : chaîne
* Obligatoire : faux

#### --shade-chunk-size

Taille de bloc à utiliser pour l’envoi.

Tous les fichiers plus grands que cela seront envoyés en blocs de cette taille.

Notez que cela est stocké en mémoire par transfert, donc l’augmenter augmentera l’utilisation de la mémoire.

Le minimum est de 5 Mo, le maximum de 5 Go.

Propriétés :

* Config : chunk\_size
* Var. d’env. : RCLONE\_SHADE\_CHUNK\_SIZE
* Type : SizeSuffix
* Par défaut : 64Mi

#### --shade-encoding

L’encodage du backend.

Voir [la section sur l’encodage dans l’aperçu](https://github.com/shade-labs/docs/blob/main/overview/README.md#encoding) pour plus d’informations.

Propriétés :

* Config : encoding
* Var. d’env. : RCLONE\_SHADE\_ENCODING
* Type : Encoding
* Par défaut : Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot

#### --shade-description

Description du remote.

Propriétés :

* Config : description
* Var. d’env. : RCLONE\_SHADE\_DESCRIPTION
* Type : chaîne
* Obligatoire : faux

### Routes de l’API utilisées par l’intégration rclone

Les routes suivantes sont utilisées par l’intégration rclone pour interagir directement avec le système de fichiers Shade. Si vous souhaitez utiliser ces routes directement dans vos propres applications, vous devrez d’abord obtenir un jeton utilisateur en appelant la route appropriée dans la section « Utilisateurs » de la section « Utilisation de l’API » de notre documentation. Une fois que vous avez le jeton utilisateur, transmettez-le dans vos requêtes sous forme de jeton Bearer au lieu de votre clé API.

**Remarque :** Le backend rclone gère l’authentification automatiquement à l’aide de votre clé API ; vous n’avez à vous soucier des jetons utilisateur que si vous créez des intégrations personnalisées en dehors de rclone.

## GET /{drive-id}/fs/listdir

> List directory contents for a given drive path

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/listdir":{"get":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"getByDriveFsListdir","summary":"List directory contents for a given drive path"}}}}
```

## GET /{drive-id}/fs/attr

> Get file or directory attributes/metadata

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/attr":{"get":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"getByDriveFsAttr","summary":"Get file or directory attributes/metadata"}}}}
```

## GET /{drive-id}/fs/download

> Download a file with optional content disposition

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/download":{"get":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}},{"name":"disposition_type","in":"query","required":true,"schema":{"default":"attachment","type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"getByDriveFsDownload","summary":"Download a file with optional content disposition"}}}}
```

## POST /{drive-id}/fs/mkdir

> Create a directory at the specified path

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/mkdir":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"postByDriveFsMkdir","summary":"Create a directory at the specified path"}}}}
```

## POST /{drive-id}/fs/mkdir/batch

> Create multiple directories in a single request

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/mkdir/batch":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{},"required":true},"operationId":"postByDriveFsMkdirBatch","summary":"Create multiple directories in a single request"}}}}
```

## POST /{drive-id}/fs/copy-file

> Copy a file from one path to another

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/copy-file":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","required":true,"schema":{"type":"string"}},{"name":"to","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"postByDriveFsCopy-file","summary":"Copy a file from one path to another"}}}}
```

## POST /{drive-id}/fs/move

> Move or rename a file or directory

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/move":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"from","in":"query","required":true,"schema":{"type":"string"}},{"name":"to","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"postByDriveFsMove","summary":"Move or rename a file or directory"}}}}
```

## POST /{drive-id}/fs/delete

> Delete a file or directory at the specified path

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/fs/delete":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"path","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"postByDriveFsDelete","summary":"Delete a file or directory at the specified path"}}}}
```

## GET /{drive-id}/info/storage

> Fetch overall storage usage and limits

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/info/storage":{"get":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"getByDriveInfoStorage","summary":"Fetch overall storage usage and limits"}}}}
```

## GET /{drive-id}/info/upload

> Fetch upload configuration and constraints

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/info/upload":{"get":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"operationId":"getByDriveInfoUpload","summary":"Fetch upload configuration and constraints"}}}}
```

## POST /{drive-id}/upload/multipart/part/{partNumber}

> Upload a specific part of a multipart upload

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/upload/multipart/part/{partNumber}":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"partNumber","in":"path","required":true,"schema":{"type":"number"}},{"name":"token","in":"query","required":true,"schema":{"type":"string"}},{"name":"signAllEndpoints","in":"query","required":false,"schema":{"type":"string"}}],"operationId":"postByDriveUploadMultipartPartByPartNumber","summary":"Upload a specific part of a multipart upload"}}}}
```

## POST /{drive-id}/upload/multipart

> Initiate a multipart upload session

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/upload/multipart":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{},"required":true},"operationId":"postByDriveUploadMultipart","summary":"Initiate a multipart upload session"}}}}
```

## POST /{drive-id}/upload/multipart/complete

> Complete a multipart upload by finalizing parts

```json
{"openapi":"3.1.1","info":{"title":"Shade Rclone Routes","version":"0.0.0"},"paths":{"/{drive-id}/upload/multipart/complete":{"post":{"tags":["drives"],"parameters":[{"name":"drive","in":"path","required":true,"schema":{"type":"string"}},{"name":"token","in":"query","required":true,"schema":{"type":"string"}},{"name":"authorization","in":"header","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{},"required":true},"operationId":"postByDriveUploadMultipartComplete","summary":"Complete a multipart upload by finalizing parts"}}}}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://academy.shade.inc/guides/guides-fr/configuration-et-migration/migration-massive-de-donnees-vers-shade-via-rclone.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
