EBC Exercise 04 Mounting OneDrive

Here are instructions on how to mount your Rose OneDrive files on your Beagle via rclone.

rclone is a command line program to sync files and directories to and from many different services, one of which is OneDrive.

Installing rclone
Install rclone on both your host and your Bone (https://rclone.org/downloads/): bone$ curl https://rclone.org/install.sh | sudo bash bone$ apt update bone$ apt install fuse

host$ curl https://rclone.org/install.sh | sudo bash bone$ apt update host$ apt install fuse

Configuring rclone
Next configure on the machine you want to run it on. I'll show doing it on the Bone since it's a bit more involved.

bone$ rclone config No remotes found - make a new one n) New remote s) Set configuration password q) Quit config n/s/q> n We're starting a new remote, so enter n

name> onedrive Call it whatever you want, I'm using onedrive. Type of storage to configure. Enter a string value. Press Enter for the default (""). Choose a number from below, or type in your own value 1 / 1Fichier \ "fichier" ... 12 / Google Drive \ "drive" 13 / Google Photos \ "google photos" ... 20 / Microsoft OneDrive \ "onedrive" ... Storage> 20 There are many choices, we want onedrive. Here's it's numbered 20, it may be different on yours. Microsoft App Client Id Leave blank normally. Enter a string value. Press Enter for the default (""). client_id> Leave this blank Microsoft App Client Secret Leave blank normally. Enter a string value. Press Enter for the default (""). client_secret> This blank too Edit advanced config? (y/n) y) Yes n) No y/n> y We want y here Chunk size to upload files with - must be multiple of 320k. Above this size files will be chunked - must be multiple of 320k. Note that the chunks will be buffered into memory. Enter a size with suffix k,M,G,T. Press Enter for the default ("10M"). chunk_size> Leave blank The ID of the drive to use Enter a string value. Press Enter for the default (""). drive_id> Leave blank The type of the drive ( personal | business | documentLibrary ) Enter a string value. Press Enter for the default (""). drive_type> business Enter business to get to your Rose OneDrive Set to make OneNote files show up in directory listings. By default rclone will hide OneNote files in directory listings because operations like "Open" and "Update" won't work on them. But this behaviour may also prevent you from deleting them. If you want to delete OneNote files or otherwise want them to show up in directory listing, set this option. Enter a boolean value (true or false). Press Enter for the default ("false"). expose_onenote_files> Hit Enter for the default

Remote config Use auto config? * Say Y if not sure * Say N if you are working on a remote or headless machine y) Yes n) No y/n> n Here is where the host vs bone install differs. If you are on your host enter y. The Bone is headless, so enter n. Let's follow the Bone path since it's requires a bit more work.

For this to work, you will need rclone available on a machine that has a web browser available. Execute the following on your machine (same rclone version recommended) : rclone authorize "onedrive" Then paste the result below: result> So, when installing on the Bone you need to run rclone authorize "onedrive" on your host. So without quitting the rclone install, run the command on your host. You will see host$ rclone authorize "onedrive" If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=de0c54f8aa6e4694505435d0025af353 Log in and authorize rclone for access Waiting for code... Got code Paste the following into your remote machine ---> {"access_token":"eyJ0eXAiOiJKV1QiLCJub25jZSI6IktlaC1iX3lxWlZNUFh0aXpYczl0bHJMQ3dwMno3TFdWVXA0NHA4MGkxOHciLCJhbGciOiJSUzI1NiIsIng1dCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWgydGlFcyIsImtpZCI6ImFQY3R3X29kdlJPb0VOZzNWb09sSWg ... CiXlbeWkTuJIyHzz9ViTscTUTKL9mhTjagMRrFzH1y-AKc0KwKUOImMF1zObuJGUEVcjmrB7BYDwy6u0z2lz8PU092HTbh-S5GrmmVXiRDPWr2aSUUf31QLfjIAA","expiry":"2019-10-10T12:15:33.556943127-04:00"} <---End paste Follow the directions and login to your Rose OneDrive account. The copy the access_token from your host window and paste it into the rclone config window. You will see Choose a number from below, or type in an existing value 1 / OneDrive Personal or Business \ "onedrive" 2 / Root Sharepoint site \ "sharepoint" 3 / Type in driveID \ "driveid" 4 / Type in SiteID \ "siteid" 5 / Search a Sharepoint site \ "search" Your choice> 1 Enter 1 for OneDrive. After a bit you will see Found 1 drives, please select the one you want to use: 0: OneDrive (business) id=b!T2RYBL90GUuk6Tj5AyfQmSswgAAexZNCm9PUX6-Q-MBzqSd8jB3aSZVF5mbW4mJw Chose drive to use:> 0 There is only one choice, so take it. After a bit more Found drive 'root' of type 'business', URL: https://rosehulman-my.sharepoint.com/personal/yoder_rose-hulman_edu/Documents Is that okay? y) Yes n) No y/n> y Your's should have your Rose email. Enter y and you'll see [onedrive] type = onedrive drive_type = business token = {"access_token":"eyJ0eXAiOiJKV1QiLCJub25jZSI6I...lupXcXioJ1VlCIAA","expiry":"2019-10-10T13:47:11.125261755-04:00"} drive_id = b!T2RYBL90GUuk6Tj5AyfQmSswgAAexZNCm9PUX6-Q-MBzqSd8jB3aSZVF5mbW4mJw y) Yes this is OK e) Edit this remote d) Delete this remote y/e/d> y Looks good. Enter y Current remotes: Name                 Type ====                 ==== onedrive             onedrive  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> q Go ahead and quit. You are now configured.

Mounting the remote files
Once configured, it's easy to mount your files when you need them. bone$ mkdir onedrive bone$ rclone mount onedrive: onedrive --daemon bone$ cd onedrive bone$ ls Attachments  Desktop   Documents  'Shared with Everyone' Those should be the top-level files in your Rose account.

When you are done with it. bone$ sudo umount onedrive