github.com/ncw/rclone@v1.48.1-0.20190724201158-a35aa1360e3e/docs/content/onedrive.md (about) 1 --- 2 title: "Microsoft OneDrive" 3 description: "Rclone docs for Microsoft OneDrive" 4 date: "2015-10-14" 5 --- 6 7 <i class="fa fa-windows"></i> Microsoft OneDrive 8 ----------------------------------------- 9 10 Paths are specified as `remote:path` 11 12 Paths may be as deep as required, eg `remote:directory/subdirectory`. 13 14 The initial setup for OneDrive involves getting a token from 15 Microsoft which you need to do in your browser. `rclone config` walks 16 you through it. 17 18 Here is an example of how to make a remote called `remote`. First run: 19 20 rclone config 21 22 This will guide you through an interactive setup process: 23 24 ``` 25 e) Edit existing remote 26 n) New remote 27 d) Delete remote 28 r) Rename remote 29 c) Copy remote 30 s) Set configuration password 31 q) Quit config 32 e/n/d/r/c/s/q> n 33 name> remote 34 Type of storage to configure. 35 Enter a string value. Press Enter for the default (""). 36 Choose a number from below, or type in your own value 37 ... 38 18 / Microsoft OneDrive 39 \ "onedrive" 40 ... 41 Storage> 18 42 Microsoft App Client Id 43 Leave blank normally. 44 Enter a string value. Press Enter for the default (""). 45 client_id> 46 Microsoft App Client Secret 47 Leave blank normally. 48 Enter a string value. Press Enter for the default (""). 49 client_secret> 50 Edit advanced config? (y/n) 51 y) Yes 52 n) No 53 y/n> n 54 Remote config 55 Use auto config? 56 * Say Y if not sure 57 * Say N if you are working on a remote or headless machine 58 y) Yes 59 n) No 60 y/n> y 61 If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth 62 Log in and authorize rclone for access 63 Waiting for code... 64 Got code 65 Choose a number from below, or type in an existing value 66 1 / OneDrive Personal or Business 67 \ "onedrive" 68 2 / Sharepoint site 69 \ "sharepoint" 70 3 / Type in driveID 71 \ "driveid" 72 4 / Type in SiteID 73 \ "siteid" 74 5 / Search a Sharepoint site 75 \ "search" 76 Your choice> 1 77 Found 1 drives, please select the one you want to use: 78 0: OneDrive (business) id=b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk 79 Chose drive to use:> 0 80 Found drive 'root' of type 'business', URL: https://org-my.sharepoint.com/personal/you/Documents 81 Is that okay? 82 y) Yes 83 n) No 84 y/n> y 85 -------------------- 86 [remote] 87 type = onedrive 88 token = {"access_token":"youraccesstoken","token_type":"Bearer","refresh_token":"yourrefreshtoken","expiry":"2018-08-26T22:39:52.486512262+08:00"} 89 drive_id = b!Eqwertyuiopasdfghjklzxcvbnm-7mnbvcxzlkjhgfdsapoiuytrewqk 90 drive_type = business 91 -------------------- 92 y) Yes this is OK 93 e) Edit this remote 94 d) Delete this remote 95 y/e/d> y 96 ``` 97 98 See the [remote setup docs](/remote_setup/) for how to set it up on a 99 machine with no Internet browser available. 100 101 Note that rclone runs a webserver on your local machine to collect the 102 token as returned from Microsoft. This only runs from the moment it 103 opens your browser to the moment you get back the verification 104 code. This is on `http://127.0.0.1:53682/` and this it may require 105 you to unblock it temporarily if you are running a host firewall. 106 107 Once configured you can then use `rclone` like this, 108 109 List directories in top level of your OneDrive 110 111 rclone lsd remote: 112 113 List all the files in your OneDrive 114 115 rclone ls remote: 116 117 To copy a local directory to an OneDrive directory called backup 118 119 rclone copy /home/source remote:backup 120 121 ### Getting your own Client ID and Key ### 122 123 rclone uses a pair of Client ID and Key shared by all rclone users when performing requests by default. 124 If you are having problems with them (E.g., seeing a lot of throttling), you can get your own 125 Client ID and Key by following the steps below: 126 127 1. Open https://apps.dev.microsoft.com/#/appList, then click `Add an app` (Choose `Converged applications` if applicable) 128 2. Enter a name for your app, and click continue. Copy and keep the `Application Id` under the app name for later use. 129 3. Under section `Application Secrets`, click `Generate New Password`. Copy and keep that password for later use. 130 4. Under section `Platforms`, click `Add platform`, then `Web`. Enter `http://localhost:53682/` in 131 `Redirect URLs`. 132 5. Under section `Microsoft Graph Permissions`, `Add` these `delegated permissions`: 133 `Files.Read`, `Files.ReadWrite`, `Files.Read.All`, `Files.ReadWrite.All`, `offline_access`, `User.Read`. 134 6. Scroll to the bottom and click `Save`. 135 136 Now the application is complete. Run `rclone config` to create or edit a OneDrive remote. 137 Supply the app ID and password as Client ID and Secret, respectively. rclone will walk you through the remaining steps. 138 139 ### Modified time and hashes ### 140 141 OneDrive allows modification times to be set on objects accurate to 1 142 second. These will be used to detect whether objects need syncing or 143 not. 144 145 OneDrive personal supports SHA1 type hashes. OneDrive for business and 146 Sharepoint Server support 147 [QuickXorHash](https://docs.microsoft.com/en-us/onedrive/developer/code-snippets/quickxorhash). 148 149 For all types of OneDrive you can use the `--checksum` flag. 150 151 ### Deleting files ### 152 153 Any files you delete with rclone will end up in the trash. Microsoft 154 doesn't provide an API to permanently delete files, nor to empty the 155 trash, so you will have to do that with one of Microsoft's apps or via 156 the OneDrive website. 157 158 <!--- autogenerated options start - DO NOT EDIT, instead edit fs.RegInfo in backend/onedrive/onedrive.go then run make backenddocs --> 159 ### Standard Options 160 161 Here are the standard options specific to onedrive (Microsoft OneDrive). 162 163 #### --onedrive-client-id 164 165 Microsoft App Client Id 166 Leave blank normally. 167 168 - Config: client_id 169 - Env Var: RCLONE_ONEDRIVE_CLIENT_ID 170 - Type: string 171 - Default: "" 172 173 #### --onedrive-client-secret 174 175 Microsoft App Client Secret 176 Leave blank normally. 177 178 - Config: client_secret 179 - Env Var: RCLONE_ONEDRIVE_CLIENT_SECRET 180 - Type: string 181 - Default: "" 182 183 ### Advanced Options 184 185 Here are the advanced options specific to onedrive (Microsoft OneDrive). 186 187 #### --onedrive-chunk-size 188 189 Chunk size to upload files with - must be multiple of 320k. 190 191 Above this size files will be chunked - must be multiple of 320k. Note 192 that the chunks will be buffered into memory. 193 194 - Config: chunk_size 195 - Env Var: RCLONE_ONEDRIVE_CHUNK_SIZE 196 - Type: SizeSuffix 197 - Default: 10M 198 199 #### --onedrive-drive-id 200 201 The ID of the drive to use 202 203 - Config: drive_id 204 - Env Var: RCLONE_ONEDRIVE_DRIVE_ID 205 - Type: string 206 - Default: "" 207 208 #### --onedrive-drive-type 209 210 The type of the drive ( personal | business | documentLibrary ) 211 212 - Config: drive_type 213 - Env Var: RCLONE_ONEDRIVE_DRIVE_TYPE 214 - Type: string 215 - Default: "" 216 217 #### --onedrive-expose-onenote-files 218 219 Set to make OneNote files show up in directory listings. 220 221 By default rclone will hide OneNote files in directory listings because 222 operations like "Open" and "Update" won't work on them. But this 223 behaviour may also prevent you from deleting them. If you want to 224 delete OneNote files or otherwise want them to show up in directory 225 listing, set this option. 226 227 - Config: expose_onenote_files 228 - Env Var: RCLONE_ONEDRIVE_EXPOSE_ONENOTE_FILES 229 - Type: bool 230 - Default: false 231 232 <!--- autogenerated options stop --> 233 234 ### Limitations ### 235 236 Note that OneDrive is case insensitive so you can't have a 237 file called "Hello.doc" and one called "hello.doc". 238 239 There are quite a few characters that can't be in OneDrive file 240 names. These can't occur on Windows platforms, but on non-Windows 241 platforms they are common. Rclone will map these names to and from an 242 identical looking unicode equivalent. For example if a file has a `?` 243 in it will be mapped to `?` instead. 244 245 The largest allowed file sizes are 15GB for OneDrive for Business and 35GB for OneDrive Personal (Updated 4 Jan 2019). 246 247 The entire path, including the file name, must contain fewer than 400 characters for OneDrive, OneDrive for Business and SharePoint Online. If you are encrypting file and folder names with rclone, you may want to pay attention to this limitation because the encrypted names are typically longer than the original ones. 248 249 OneDrive seems to be OK with at least 50,000 files in a folder, but at 250 100,000 rclone will get errors listing the directory like `couldn’t 251 list files: UnknownError:`. See 252 [#2707](https://github.com/ncw/rclone/issues/2707) for more info. 253 254 An official document about the limitations for different types of OneDrive can be found [here](https://support.office.com/en-us/article/invalid-file-names-and-file-types-in-onedrive-onedrive-for-business-and-sharepoint-64883a5d-228e-48f5-b3d2-eb39e07630fa). 255 256 ### Versioning issue ### 257 258 Every change in OneDrive causes the service to create a new version. 259 This counts against a users quota. 260 For example changing the modification time of a file creates a second 261 version, so the file is using twice the space. 262 263 The `copy` is the only rclone command affected by this as we copy 264 the file and then afterwards set the modification time to match the 265 source file. 266 267 **Note**: Starting October 2018, users will no longer be able to disable versioning by default. This is because Microsoft has brought an [update](https://techcommunity.microsoft.com/t5/Microsoft-OneDrive-Blog/New-Updates-to-OneDrive-and-SharePoint-Team-Site-Versioning/ba-p/204390) to the mechanism. To change this new default setting, a PowerShell command is required to be run by a SharePoint admin. If you are an admin, you can run these commands in PowerShell to change that setting: 268 269 1. `Install-Module -Name Microsoft.Online.SharePoint.PowerShell` (in case you haven't installed this already) 270 1. `Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking` 271 1. `Connect-SPOService -Url https://YOURSITE-admin.sharepoint.com -Credential YOU@YOURSITE.COM` (replacing `YOURSITE`, `YOU`, `YOURSITE.COM` with the actual values; this will prompt for your credentials) 272 1. `Set-SPOTenant -EnableMinimumVersionRequirement $False` 273 1. `Disconnect-SPOService` (to disconnect from the server) 274 275 *Below are the steps for normal users to disable versioning. If you don't see the "No Versioning" option, make sure the above requirements are met.* 276 277 User [Weropol](https://github.com/Weropol) has found a method to disable 278 versioning on OneDrive 279 280 1. Open the settings menu by clicking on the gear symbol at the top of the OneDrive Business page. 281 2. Click Site settings. 282 3. Once on the Site settings page, navigate to Site Administration > Site libraries and lists. 283 4. Click Customize "Documents". 284 5. Click General Settings > Versioning Settings. 285 6. Under Document Version History select the option No versioning. 286 Note: This will disable the creation of new file versions, but will not remove any previous versions. Your documents are safe. 287 7. Apply the changes by clicking OK. 288 8. Use rclone to upload or modify files. (I also use the --no-update-modtime flag) 289 9. Restore the versioning settings after using rclone. (Optional) 290 291 ### Troubleshooting ### 292 293 ``` 294 Error: access_denied 295 Code: AADSTS65005 296 Description: Using application 'rclone' is currently not supported for your organization [YOUR_ORGANIZATION] because it is in an unmanaged state. An administrator needs to claim ownership of the company by DNS validation of [YOUR_ORGANIZATION] before the application rclone can be provisioned. 297 ``` 298 299 This means that rclone can't use the OneDrive for Business API with your account. You can't do much about it, maybe write an email to your admins. 300 301 However, there are other ways to interact with your OneDrive account. Have a look at the webdav backend: https://rclone.org/webdav/#sharepoint 302 303 304 ``` 305 Error: invalid_grant 306 Code: AADSTS50076 307 Description: Due to a configuration change made by your administrator, or because you moved to a new location, you must use multi-factor authentication to access '...'. 308 ``` 309 310 If you see the error above after enabling multi-factor authentication for your account, you can fix it by refreshing your OAuth refresh token. To do that, run `rclone config`, and choose to edit your OneDrive backend. Then, you don't need to actually make any changes until you reach this question: `Already have a token - refresh?`. For this question, answer `y` and go through the process to refresh your token, just like the first time the backend is configured. After this, rclone should work again for this backend.