Files
rclone/docs/content/dosya.md
T
Kayaandfiratkaya 408cc55171 Add new backend dosya for dosya.dev cloud storage
Add a new backend for dosya.dev, a cloud file storage, sharing, and
synchronization platform with workspace-based multi-tenancy.

Features:
- Server-side copy, move, rename (files and directories)
- Purge (recursive directory delete)
- Recursive listing (ListR) for --fast-list
- Multipart upload for large files (>10MB)
- Public link sharing via rclone link
- About (workspace storage quota)
- MIME type detection
- Empty directory support
- Workspace-based multi-tenancy (one remote per workspace)
- Download via presigned R2 URLs with Range header support

Co-authored-by: firatkaya <firat@netiket.com.tr>
2026-10-07 12:16:42 +01:00

7.7 KiB
Raw Blame History

title, description, versionIntroduced
title description versionIntroduced
dosya.dev Rclone docs for dosya.dev v1.76

dosya.dev

dosya.dev is a cloud file storage, sharing, and synchronization platform with workspace-based multi-tenancy, file versioning, and team collaboration features.

Configuration

Here is an example of how to make a remote called remote. First run:

rclone config

This will guide you through an interactive setup process:

No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n

Enter name for new remote.
name> remote

Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
XX / dosya.dev
   \ (dosya)
Storage> dosya

Option api_key.
Your API Key, get it from https://dosya.dev/profile under "API keys".
Enter a value.
api_key> dos_YOURAPIKEY

Option workspace_id.
Your workspace ID.

Leave this blank to use the one workspace the API key can reach, which
is what a key restricted to a single workspace does. If the key can
reach several, rclone will refuse and list their IDs for you to choose
from.
Enter a value. Press Enter to leave empty.
workspace_id>

Edit advanced config?
y) Yes
n) No (default)
y/n> n

Configuration complete.
Options:
- type: dosya
- api_key: dos_YOURAPIKEY
Keep this "remote" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Once configured you can then use rclone like this (replace remote with the name you gave your remote):

List directories and files in the top level of your dosya workspace

rclone lsf remote:

To copy a local directory to a dosya directory called backup

rclone copy /home/source remote:backup

The dosya backend uploads large files in parts and stores them as single files that remain accessible through the web app and other clients. If you previously used a WebDAV remote with a chunker overlay for large uploads, you can use this backend without the overlay.

Getting your API key

  1. Log in to dosya.dev
  2. Go to Profile > API keys
  3. Create a new API key
  4. Copy the key (starts with dos_)

A key can be restricted to a single workspace when you create it, which is the simplest thing to do for rclone: workspace_id can then be left out of the config entirely.

Workspaces

Leave workspace_id blank and rclone asks which workspaces the key can reach. A key restricted to one workspace, and an account that has only one, both resolve without any configuration. If the key can reach several, rclone refuses and lists their IDs so you can set the one you want:

this API key can reach 2 workspaces, so workspace_id must be set to one of:
    ws_AAAAAAAA (Work)
    ws_BBBBBBBB (Personal)

To access several workspaces at once, create a separate remote for each:

rclone config create work dosya api_key=dos_XXX workspace_id=ws_WORK
rclone config create personal dosya api_key=dos_XXX workspace_id=ws_PERSONAL

Then use them independently:

rclone ls work:
rclone copy work:docs/ personal:backup/

Modification times and hashes

dosya.dev supports modification times with a resolution of 1 second. The modification time is sent with the upload, so a copied or synced file keeps its original timestamp. Modification times cannot be changed after upload without re-uploading the file.

dosya.dev supports SHA-256 checksums. The server computes the hash of a single-shot (small file) upload from the bytes it receives, so rclone check and hash-based sync work without downloading. Large files uploaded in multiple parts have no server-side hash (the parts are never re-read to hash the whole object), the same limitation the S3 backend has for multipart objects; those objects report an empty hash.

Restricted filename characters

In addition to the default restricted characters set the following characters are also replaced:

Character Value Replacement
" 0x22 "
' 0x27 '
< 0x3C <
> 0x3E >
\ 0x5C \

Invalid UTF-8 bytes will also be replaced, as they can't be used in JSON strings.

dosya.dev supports rclone link to create public share links to files. You can use the --expire flag to specify how long the link should be valid.

rclone link remote:path/to/file.txt
rclone link --expire 7d remote:path/to/file.txt

Standard options

Here are the Standard options specific to dosya (dosya.dev).

--dosya-api-key

Your API Key, get it from https://dosya.dev/profile under "API keys".

Properties:

  • Config: api_key
  • Env Var: RCLONE_DOSYA_API_KEY
  • Type: string
  • Required: true

--dosya-workspace-id

Your workspace ID.

Leave this blank to use the one workspace the API key can reach, which is what a key restricted to a single workspace does. If the key can reach several, rclone will refuse and list their IDs for you to choose from.

Properties:

  • Config: workspace_id
  • Env Var: RCLONE_DOSYA_WORKSPACE_ID
  • Type: string
  • Required: false

Advanced options

Here are the Advanced options specific to dosya (dosya.dev).

--dosya-api-url

API base URL.

Properties:

--dosya-upload-concurrency

Concurrency for multipart uploads.

This is the number of parts of the same file that are uploaded concurrently. The first part is always uploaded on its own, because the server creates the upload when it receives it.

Each part in flight is held in memory, so memory use grows with this value times the part size the server chooses.

If you are uploading large files over high-speed links and these uploads do not fully utilize your bandwidth, then increasing this may help to speed up the transfers.

Properties:

  • Config: upload_concurrency
  • Env Var: RCLONE_DOSYA_UPLOAD_CONCURRENCY
  • Type: int
  • Default: 4

--dosya-encoding

The encoding for the backend.

See the encoding section in the overview for more info.

Properties:

  • Config: encoding
  • Env Var: RCLONE_DOSYA_ENCODING
  • Type: Encoding
  • Default: Slash,LtGt,DoubleQuote,SingleQuote,BackSlash,Del,Ctl,LeftSpace,RightSpace,InvalidUtf8,Dot

--dosya-description

Description of the remote.

Properties:

  • Config: description
  • Env Var: RCLONE_DOSYA_DESCRIPTION
  • Type: string
  • Required: false

Limitations

dosya.dev only supports filenames up to 255 characters in length.

Empty files (0 bytes) cannot be uploaded to dosya.dev.

Upload requires knowing the file size in advance, so streaming uploads of unknown-size files are not supported.

Each workspace limits the number of uploads a user can have in flight at once (5 by default, configurable in the workspace settings). When --transfers is set higher than that limit, rclone waits for a free upload slot rather than failing the transfer, retrying every 5 seconds for up to 10 minutes.

Deleting files and directories

rclone deletes files and directories permanently, in a single request (DELETE ?permanent=1), bypassing the workspace trash. Removing a directory also asks the server whether it is empty (?if_empty=1) rather than listing it first.