Mass migrating Data to Shade via Rclone
How to migrate data into Shade via Rclone
Handling Data Migration and Transfers Efficiently
This is a guide for migrating large amounts of data into or out of your shade drive using rclone, a powerful open-source tool which supports many different sources.
Downloading rclone
Please note: The Shade backend is not yet available in the official rclone documentation, as the pull request is currently pending. If you would like to use rclone with Shade, download the specific executable for the system you're running on here:
https://app.shade.inc/publish/617fe363-8d01-4cd5-be1c-2ad094f4ffef
Once the backend is merged into the official rclone release, you'll be able to download rclone from the official rclone downloads page.
About rclone
rclone is a powerful command-line program to manage files on cloud storage. It's often described as "rsync for cloud storage" and supports over 70 different cloud storage providers.
Common use cases for rclone include:
Syncing and backing up files between your local system and cloud storage
Migrating data from one cloud provider to another
Automating workflows with scheduled syncs and backups
Managing large file transfers with resume capability and bandwidth controls
Batch operations for copying, moving, or deleting files across cloud services
With Shade's rclone backend, you can leverage all of rclone's powerful features to interact with your Shade drives directly from the command line.
Configuration
Here is an example of making a Shade configuration.
First, create a free account and choose a plan.
You will need to log in and get the API Key and Drive ID for your account from the settings section of your account and created drive respectively.
Now open a command prompt or terminal and navigate to where you downloaded that file, and run
./rclone config
(If you are on a mac you will need to tell your computer that this file can be executed, so run
chmod +x rclone )
Then follow this interactive process:
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
Enter name for new remote.
name> Shade
Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
(Scroll along the list and find the Shade option, as of 11/5/25 it is 52)
[OTHER OPTIONS]
xx / Shade FS
\ (shade)
[OTHER OPTIONS]
Storage> xx
Option drive_id.
The ID of your drive, see this in the drive settings. Individual rclone configs must be made per drive.
Enter a value.
drive_id> [YOUR_ID]
Option api_key.
An API key for your account.
Enter a value.
api_key> [YOUR_API_KEY]
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Configuration complete.
Options:
- type: shade
- drive_id: [YOUR_ID]
- api_key: [YOUR_API_KEY]
Keep this "Shade" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y
Example Workflow: Copying Files to Shade
Once you've configured your Shade remote, you can easily copy files from your local filesystem to Shade. Here's a common workflow:
Copying a Local Folder to Shade
To copy a folder from your local system to your Shade drive:
./rclone copy /path/to/local/folder Shade:/destination/folderFor example, to copy your "Projects" folder to Shade:
./rclone copy ~/Projects Shade:/ProjectsThis command will:
Copy all files from your local Projects folder to Shade
Preserve the folder structure
Skip files that already exist and haven't changed
Show progress during the transfer
Additional Useful Commands
Sync a folder (makes destination identical to source, including deletions):
./rclone sync ~/Projects Shade:/ProjectsCheck what would be copied without actually copying:
./rclone copy ~/Projects Shade:/Projects --dry-runCopy with progress and statistics:
./rclone copy ~/Projects Shade:/Projects --progress --stats 1sList files in your Shade drive:
./rclone ls Shade:/Standard Options
Here are the Standard options specific to shade (Shade FS).
Note: For most users, you only need to configure the drive_id and api_key. The advanced options below are for specific use cases and can be left at their defaults.
--shade-drive-id
The ID of your drive, see this in the drive settings. Individual rclone configs must be made per drive.
Properties:
Config: drive_id
Env Var: RCLONE_SHADE_DRIVE_ID
Type: string
Required: true
--shade-api-key
An API key for your account. You can find this under Settings > API Keys
Properties:
Config: api_key
Env Var: RCLONE_SHADE_API_KEY
Type: string
Required: true
Advanced Options
Here are the Advanced options specific to shade (Shade FS).
--shade-endpoint
Endpoint for the service.
Leave blank normally.
Properties:
Config: endpoint
Env Var: RCLONE_SHADE_ENDPOINT
Type: string
Required: false
--shade-chunk-size
Chunk size to use for uploading.
Any files larger than this will be uploaded in chunks of this size.
Note that this is stored in memory per transfer, so increasing it will increase memory usage.
Minimum is 5MB, maximum is 5GB.
Properties:
Config: chunk_size
Env Var: RCLONE_SHADE_CHUNK_SIZE
Type: SizeSuffix
Default: 64Mi
--shade-encoding
The encoding for the backend.
See the encoding section in the overview for more info.
Properties:
Config: encoding
Env Var: RCLONE_SHADE_ENCODING
Type: Encoding
Default: Slash,BackSlash,Del,Ctl,InvalidUtf8,Dot
--shade-description
Description of the remote.
Properties:
Config: description
Env Var: RCLONE_SHADE_DESCRIPTION
Type: string
Required: false
API Routes Used by Rclone Integration
The following routes are used by the rclone integration to interface directly with the Shade filesystem. If you want to use these routes directly in your own applications, you'll need to first obtain a user token by calling the appropriate route from the 'Users' section in the 'Using the API' section of our documentation. Once you have the user token, pass it as a bearer token in your requests instead of your API key.
Note: The rclone backend handles authentication automatically using your API key - you only need to worry about user tokens if you're building custom integrations outside of rclone.
attachmentGET /{drive-id}/fs/download?path=text&disposition_type=attachment HTTP/1.1
Host:
authorization: text
Accept: */*
POST /{drive-id}/upload/multipart/part/{partNumber}?token=text HTTP/1.1
Host:
Accept: */*
POST /{drive-id}/upload/multipart/complete?token=text HTTP/1.1
Host:
authorization: text
Accept: */*
Last updated

