--- title: "dosya.dev" description: "Rclone docs for dosya.dev" versionIntroduced: "v1.76" --- # dosya.dev [dosya.dev](https://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: ```console rclone config ``` This will guide you through an interactive setup process: ```text 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 ```console rclone lsf remote: ``` To copy a local directory to a dosya directory called backup ```console 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](https://dosya.dev) 2. Go to [Profile](https://dosya.dev/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: ```text 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: ```console 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: ```console 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](/overview/#restricted-characters) the following characters are also replaced: | Character | Value | Replacement | | --------- |:-----:|:-----------:| | " | 0x22 | " | | ' | 0x27 | ' | | < | 0x3C | < | | > | 0x3E | > | | \ | 0x5C | \ | Invalid UTF-8 bytes will also be [replaced](/overview/#invalid-utf8), as they can't be used in JSON strings. ### Public Links 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. ```console 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: - Config: api_url - Env Var: RCLONE_DOSYA_API_URL - Type: string - Default: "https://api.dosya.dev" #### --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](/overview/#encoding) 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.