mirror of
https://github.com/rclone/rclone.git
synced 2024-11-24 08:25:04 +08:00
293 lines
8.5 KiB
Markdown
293 lines
8.5 KiB
Markdown
---
|
||
title: "Dropbox"
|
||
description: "Rclone docs for Dropbox"
|
||
---
|
||
|
||
{{< icon "fab fa-dropbox" >}} Dropbox
|
||
---------------------------------
|
||
|
||
Paths are specified as `remote:path`
|
||
|
||
Dropbox paths may be as deep as required, eg
|
||
`remote:directory/subdirectory`.
|
||
|
||
The initial setup for dropbox involves getting a token from Dropbox
|
||
which you need to do in your browser. `rclone config` walks you
|
||
through it.
|
||
|
||
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:
|
||
|
||
```
|
||
n) New remote
|
||
d) Delete remote
|
||
q) Quit config
|
||
e/n/d/q> n
|
||
name> remote
|
||
Type of storage to configure.
|
||
Choose a number from below, or type in your own value
|
||
[snip]
|
||
XX / Dropbox
|
||
\ "dropbox"
|
||
[snip]
|
||
Storage> dropbox
|
||
Dropbox App Key - leave blank normally.
|
||
app_key>
|
||
Dropbox App Secret - leave blank normally.
|
||
app_secret>
|
||
Remote config
|
||
Please visit:
|
||
https://www.dropbox.com/1/oauth2/authorize?client_id=XXXXXXXXXXXXXXX&response_type=code
|
||
Enter the code: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXXXXXXXX
|
||
--------------------
|
||
[remote]
|
||
app_key =
|
||
app_secret =
|
||
token = XXXXXXXXXXXXXXXXXXXXXXXXXXXXX_XXXX_XXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
||
--------------------
|
||
y) Yes this is OK
|
||
e) Edit this remote
|
||
d) Delete this remote
|
||
y/e/d> y
|
||
```
|
||
|
||
You can then use it like this,
|
||
|
||
List directories in top level of your dropbox
|
||
|
||
rclone lsd remote:
|
||
|
||
List all the files in your dropbox
|
||
|
||
rclone ls remote:
|
||
|
||
To copy a local directory to a dropbox directory called backup
|
||
|
||
rclone copy /home/source remote:backup
|
||
|
||
### Dropbox for business ###
|
||
|
||
Rclone supports Dropbox for business and Team Folders.
|
||
|
||
When using Dropbox for business `remote:` and `remote:path/to/file`
|
||
will refer to your personal folder.
|
||
|
||
If you wish to see Team Folders you must use a leading `/` in the
|
||
path, so `rclone lsd remote:/` will refer to the root and show you all
|
||
Team Folders and your User Folder.
|
||
|
||
You can then use team folders like this `remote:/TeamFolder` and
|
||
`remote:/TeamFolder/path/to/file`.
|
||
|
||
A leading `/` for a Dropbox personal account will do nothing, but it
|
||
will take an extra HTTP transaction so it should be avoided.
|
||
|
||
### Modified time and Hashes ###
|
||
|
||
Dropbox supports modified times, but the only way to set a
|
||
modification time is to re-upload the file.
|
||
|
||
This means that if you uploaded your data with an older version of
|
||
rclone which didn't support the v2 API and modified times, rclone will
|
||
decide to upload all your old data to fix the modification times. If
|
||
you don't want this to happen use `--size-only` or `--checksum` flag
|
||
to stop it.
|
||
|
||
Dropbox supports [its own hash
|
||
type](https://www.dropbox.com/developers/reference/content-hash) which
|
||
is checked for all transfers.
|
||
|
||
#### Restricted filename characters
|
||
|
||
| Character | Value | Replacement |
|
||
| --------- |:-----:|:-----------:|
|
||
| NUL | 0x00 | ␀ |
|
||
| / | 0x2F | / |
|
||
| DEL | 0x7F | ␡ |
|
||
| \ | 0x5C | \ |
|
||
|
||
File names can also not end with the following characters.
|
||
These only get replaced if they are the last character in the name:
|
||
|
||
| Character | Value | Replacement |
|
||
| --------- |:-----:|:-----------:|
|
||
| SP | 0x20 | ␠ |
|
||
|
||
Invalid UTF-8 bytes will also be [replaced](/overview/#invalid-utf8),
|
||
as they can't be used in JSON strings.
|
||
|
||
{{< rem autogenerated options start" - DO NOT EDIT - instead edit fs.RegInfo in backend/dropbox/dropbox.go then run make backenddocs" >}}
|
||
### Standard Options
|
||
|
||
Here are the standard options specific to dropbox (Dropbox).
|
||
|
||
#### --dropbox-client-id
|
||
|
||
OAuth Client Id
|
||
Leave blank normally.
|
||
|
||
- Config: client_id
|
||
- Env Var: RCLONE_DROPBOX_CLIENT_ID
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
#### --dropbox-client-secret
|
||
|
||
OAuth Client Secret
|
||
Leave blank normally.
|
||
|
||
- Config: client_secret
|
||
- Env Var: RCLONE_DROPBOX_CLIENT_SECRET
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
### Advanced Options
|
||
|
||
Here are the advanced options specific to dropbox (Dropbox).
|
||
|
||
#### --dropbox-token
|
||
|
||
OAuth Access Token as a JSON blob.
|
||
|
||
- Config: token
|
||
- Env Var: RCLONE_DROPBOX_TOKEN
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
#### --dropbox-auth-url
|
||
|
||
Auth server URL.
|
||
Leave blank to use the provider defaults.
|
||
|
||
- Config: auth_url
|
||
- Env Var: RCLONE_DROPBOX_AUTH_URL
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
#### --dropbox-token-url
|
||
|
||
Token server url.
|
||
Leave blank to use the provider defaults.
|
||
|
||
- Config: token_url
|
||
- Env Var: RCLONE_DROPBOX_TOKEN_URL
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
#### --dropbox-chunk-size
|
||
|
||
Upload chunk size. (< 150M).
|
||
|
||
Any files larger than this will be uploaded in chunks of this size.
|
||
|
||
Note that chunks are buffered in memory (one at a time) so rclone can
|
||
deal with retries. Setting this larger will increase the speed
|
||
slightly (at most 10% for 128MB in tests) at the cost of using more
|
||
memory. It can be set smaller if you are tight on memory.
|
||
|
||
- Config: chunk_size
|
||
- Env Var: RCLONE_DROPBOX_CHUNK_SIZE
|
||
- Type: SizeSuffix
|
||
- Default: 48M
|
||
|
||
#### --dropbox-impersonate
|
||
|
||
Impersonate this user when using a business account.
|
||
|
||
- Config: impersonate
|
||
- Env Var: RCLONE_DROPBOX_IMPERSONATE
|
||
- Type: string
|
||
- Default: ""
|
||
|
||
#### --dropbox-shared-files
|
||
|
||
Instructs rclone to work on individual shared files.
|
||
|
||
In this mode rclone's features are extremely limited - only list (ls, lsl, etc.)
|
||
operations and read operations (e.g. downloading) are supported in this mode.
|
||
All other operations will be disabled.
|
||
|
||
- Config: shared_files
|
||
- Env Var: RCLONE_DROPBOX_SHARED_FILES
|
||
- Type: bool
|
||
- Default: false
|
||
|
||
#### --dropbox-shared-folders
|
||
|
||
Instructs rclone to work on shared folders.
|
||
|
||
When this flag is used with no path only the List operation is supported and
|
||
all available shared folders will be listed. If you specify a path the first part
|
||
will be interpreted as the name of shared folder. Rclone will then try to mount this
|
||
shared to the root namespace. On success shared folder rclone proceeds normally.
|
||
The shared folder is now pretty much a normal folder and all normal operations
|
||
are supported.
|
||
|
||
Note that we don't unmount the shared folder afterwards so the
|
||
--dropbox-shared-folders can be omitted after the first use of a particular
|
||
shared folder.
|
||
|
||
- Config: shared_folders
|
||
- Env Var: RCLONE_DROPBOX_SHARED_FOLDERS
|
||
- Type: bool
|
||
- Default: false
|
||
|
||
#### --dropbox-encoding
|
||
|
||
This sets the encoding for the backend.
|
||
|
||
See: the [encoding section in the overview](/overview/#encoding) for more info.
|
||
|
||
- Config: encoding
|
||
- Env Var: RCLONE_DROPBOX_ENCODING
|
||
- Type: MultiEncoder
|
||
- Default: Slash,BackSlash,Del,RightSpace,InvalidUtf8,Dot
|
||
|
||
{{< rem autogenerated options stop >}}
|
||
|
||
### Limitations ###
|
||
|
||
Note that Dropbox is case insensitive so you can't have a file called
|
||
"Hello.doc" and one called "hello.doc".
|
||
|
||
There are some file names such as `thumbs.db` which Dropbox can't
|
||
store. There is a full list of them in the ["Ignored Files" section
|
||
of this document](https://www.dropbox.com/en/help/145). Rclone will
|
||
issue an error message `File name disallowed - not uploading` if it
|
||
attempts to upload one of those file names, but the sync won't fail.
|
||
|
||
Some errors may occur if you try to sync copyright-protected files
|
||
because Dropbox has its own [copyright detector](https://techcrunch.com/2014/03/30/how-dropbox-knows-when-youre-sharing-copyrighted-stuff-without-actually-looking-at-your-stuff/) that
|
||
prevents this sort of file being downloaded. This will return the error `ERROR :
|
||
/path/to/your/file: Failed to copy: failed to open source object:
|
||
path/restricted_content/.`
|
||
|
||
If you have more than 10,000 files in a directory then `rclone purge
|
||
dropbox:dir` will return the error `Failed to purge: There are too
|
||
many files involved in this operation`. As a work-around do an
|
||
`rclone delete dropbox:dir` followed by an `rclone rmdir dropbox:dir`.
|
||
|
||
### Get your own Dropbox App ID ###
|
||
|
||
When you use rclone with Dropbox in its default configuration you are using rclone's App ID. This is shared between all the rclone users.
|
||
|
||
Here is how to create your own Dropbox App ID for rclone:
|
||
|
||
1. Log into the [Dropbox App console](https://www.dropbox.com/developers/apps/create) with your Dropbox Account (It need not
|
||
to be the same account as the Dropbox you want to access)
|
||
|
||
2. Choose an API => Usually this should be `Dropbox API`
|
||
|
||
3. Choose the type of access you want to use => `Full Dropbox` or `App Folder`
|
||
|
||
4. Name your App. The app name is global, so you can't use `rclone` for example
|
||
|
||
5. Click the button `Create App`
|
||
|
||
5. Fill `Redirect URIs` as `http://localhost:53682/`
|
||
|
||
6. Find the `App key` and `App secret` Use these values in rclone config to add a new remote or edit an existing remote.
|