为什么
现在随处可见的 OneDirve 1T/5T/25T 以及 GoogleDrive 无限空间的账号,当这些巨头用各种渠道让用户免费获取大容量存储空间的同时我们自己心里也要明白:我们才是别人种下的韭菜,所以在收割与反收割的博弈当中我们需要给自己留好退路。
永远不要把鸡蛋放在同一个篮子中,当你手里有一大堆大容量网盘的时候,让他们保持同步是对数据最大的保护。
目前主流的方案是使用 rclone 之类的同步程序进行跨平台同步数据,亦或是使用一些云服务商提供的数据迁移服务,本文不讨论优劣,只提供另外一条可选路径。
怎么做
登录微软RPA
在顶部的搜索框中搜索 Google Drive
根据账号类型选择 OneDrive for Business 或是 OneDrive (本文使用 OneDrive for Business)
分别点击 OneDrive 和 Google Drive 的登录按钮进行授权
完成之后点击“继续”,这样我们就基于“OneDrive for Business 文件到 Google Drive 文件”模板创建了我们自己的流
配置流,监听 OneDrive 根目录的文件创建,并在 Google Drive 的相同路径创建相同的文件
由于 OneDrive 创建文件时给出的路径包含了类似/drives/xxxxxxxxxxxxxxxxxxxxxxx/root:
这样的用户目录,所以我们要使用函数处理掉这些路径
replace(replace(replace(decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']),substring(decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']), 0, lastIndexOf(decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']), 'root:')),''),'root:',''), decodeBase64(triggerOutputs()['headers/x-ms-file-name-encoded']), '')
格式化之后是这样,整体思路就是移除/drives/xxxxxxxxxxxxxxxxxxxxxxx/root:
以及路径中的文件名,产生真实的用户网盘路径
replace(
replace(
replace(
decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']),
substring(
decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']),
0,
lastIndexOf(decodeBase64(triggerOutputs()['headers/x-ms-file-path-encoded']), 'root:'),
),
'',
),
'root:',
'',
),
decodeBase64(triggerOutputs()['headers/x-ms-file-name-encoded']),
'',
)
配置好了之后可以点击“测试”按钮进行测试,测试过程中能看到 OneDrive 端的相应信息,包含 header
和 body
两部分,header
中存放了文件名、路径的信息,body
中存放了文件内容、内容类型等信息
使用过程中随时可以在 我的流 > 运行状态 中查看运行日志,每一条都可以点击查看到详情,详情如 7 所描述