JustZiya

使用 Rclone 同步 OneDrive 网盘

起因

之前在玩黑群晖的时候,一时手欠就把Books目录都传到了 OneDrive 上。

后来硬盘挂掉之后一直放着没管。

最近实在太闲,就想着把它们都下回来。

然而在 Windows Server 2019 中并不能运行 OneDrive 的官方客户端。于是正好试试久仰大名的 Rclone

经过

Rclone 简介

Rclone 是一款支持多网盘的跨平台命令行程序,支持的网盘列表如下:

Alibaba Cloud (Aliyun) Object Storage System (OSS)
Amazon Drive (See note)
Amazon S3
Backblaze B2
Box
Ceph
DigitalOcean Spaces
Dreamhost
Dropbox
FTP
Google Cloud Storage
Google Drive
HTTP
Hubic
Jottacloud
IBM COS S3
Koofr
Memset Memstore
Mega
Microsoft Azure Blob Storage
Microsoft OneDrive
Minio
Nextcloud
OVH
OpenDrive
Openstack Swift
Oracle Cloud Storage
ownCloud
pCloud
put.io
QingStor
Rackspace Cloud Files
rsync.net
Scaleway
SFTP
Wasabi
WebDAV
Yandex Disk
The local filesystem

创建 Microsoft 应用程序

由于 Rclone 使用 Microsoft 应用授权来进行 OneDrive 的同步,因此我们要先去建一个应用。

  • 访问https://apps.dev.microsoft.com/#/appList,点击 添加应用
  • 随便起一个名称,比如myod
  • 记录应用程序 ID,等下会用到
  • 应用程序机密处点击 生成新密码,记录下来,等下会用到
  • 点击 添加平台,选择 Web
  • 在 重定向URL 处填写http://localhost:53682/
  • 在 Microsoft Graph 权限 处点击添加,勾选Files.ReadFiles.Read.AllFiles.ReadWriteFiles.ReadWrite.Alloffline_accessUser.Read等权限
  • 点击最下方的保存,完成应用程序创建

配置 rclone

下载 rclone 的 Windows 压缩包,解压到某一固定目录。打开命令行提示符,切换到该目录。

运行 rclone.exe config,开始配置。

n) New remote
s) Set configuration password
q) Quit config

输入 n 新建,然后随便输入一个名称,比如 od

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
...
19 / Microsoft OneDrive
   \ "onedrive"
...

输入 19

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>

输入刚刚记下的 应用程序ID

Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>

输入刚刚记下的 应用程序机密

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

输入 n

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

If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...

此时程序会自动打开一个网页,登录账号并允许应用访问。之后页面会自动跳转,提示授权完成。
回到命令行提示符

Got code
Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice>

输入 1

Found 1 drives, please select the one you want to use:
0:  (personal) id=
Chose drive to use:> 

输入 0

Found drive 'root' of type 'personal', URL: https://onedrive.live.com/?cid=
Is that okay?
y) Yes
n) No
y/n> 

输入 y

--------------------
[remote]
type = onedrive
token = 
drive_id = 
drive_type = personal
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d>

输入 y,完成配置。

rclone 的基本使用

  • 列出远程目录:运行 rclone.exe ls od:
  • 将Books目录同步到本地:运行 rclone.exe copy od:Books e:\Disk\Books\

更多的命令请详见 官方文档

评论