本帖最后由 Amos 于 2018-12-16 12:57 编辑
已知问题
1. 上传一些.exe文件时触发不了,或者报错,需手动分类(使用properties only及后缀判别可解决)
2. 部分文件格式分类出错,较大文件可能没反应
#准备
1. OneDrive账号一枚,需要支持FLOW
2. (可选)搭配aria2c,利用aria2c和脚本,可进行离线下载和自动上传
#正餐
##创建你自己的flow
###1 登录office官网,进入你的OneDrive
###2 创建新的FLOW
选择FLOW,在弹出的界面底部选择查看你的FLOW,或直接这里,第一次进使用需要设置地区。

然后选择`creat from blank`,之后继续选择`create from blank`

这样就进入FLOW的建设页面了
##FLOW具体配置
### 为FLOW选择`connecter`于`trigger`


### `trigger`的具体设置
- 路径以`/upload`为例

- 然后设置判断条件,选择`condition`

- 配置如下以`application`为例,具体的`content-type`可以从网上查:
https://github.com/samuelneff/MimeTypeMap

- 在`yes`框内增加一次条件判断,设置第一个归档文件类型,以`.exe`可执行文件为例

选择高级模式,粘贴下面代码
@contains(triggerOutputs()['headers']['x-ms-file-name'], '.exe')
然后在这一分支下的`yes`选择`action`,执行动作将exe归档到指定目录,注意这次选择

然后action列表下拉选择移动文件,以 `move or rename a file using path`为例

设置好每个参数,这样就能完成将exe归档到指定路径。

选择保存,然后选择`test`--`I will perform the trigger action`接着传一个exe文件进行测试,以保证正确运行。
请提前建立好各个文件夹避免出错。 测试结果如下,也可以在`upload`文件夹的活动标签中看到操作记录。

逐个往下点开,可以看到绿钩。最后一步可以看到`input`和`output`,里面包含各个参数。包括`content-type`,
也就是说,如果有些文件不知道`content-type`,可以传一个测试看看输入输出就知道了。
### 设置第一个`no`分支
- 回到第一个`if no` 粉色框框,或者选择`判断是否是exe文件`的no分支,以后者为例,
**以下一大段可选择不看。直接跳到有图的部分**
实际上`application`里面包含许多种格式,`content-type`通常为 `images/png`这样的格式,所以我们第一步
已经过滤出`application`这一大类,接着就要细分了,比如`if yes` 里的exe判断。这里就不需要在使用`content-type`了,
而是转为使用`文件名`判断,也可以使用`path`即,路径判断,因为这两者里都包含了完整的文件名,当然了,我们需要的实际上是后缀,如果是英文文件名,前缀也是可以使用的。我们可以回到`trigger`里看看我们的测试结果,点开可以看到`output`,点击`click to download`打开可以看到文件的`header`以及文件内容等信息。截取内容以外的部分如下,已进行删减
"headers":{"Pragma":"no-cache","Retry-After":"15","x-ms-file-id":"01VFGSM2...D5O",
"x-ms-file-name":"QQSnapShot.exe","x-ms-file-name-encoded":"UVFTbm...FwGU=",
"x-ms-file-path":"/upload/QQSnapShot.exe","x-ms-file-path-encoded":"L3V...wbG",
"x-ms-file-etag":"\"{9C3F77E0-...AE},2\"","x-ms-request-id":"84..f9",
"Timing-Allow-Origin":"*","x-ms-apihub-cached-response":"true","Cache-Control":"no-cache",
"Date":"Thu, 13 Dec 2018 11:54:02 GMT","Location":"https://folderId=01VFGSM2YGDVHENL7QVJGZ4FBQPS2PKZ4U&inferContentType=True&",
"X-AspNet-Version":"4.0.30319","X-Powered-By":"ASP.NET","Content-Length":"798264",
"Content-Disposition":"attachment; filename=\"QQSnapShot.exe\"",
"Content-Type":"application/octet-stream","Expires":"-1"},
"body":{"$content-type":"application/octet-stream","$content":...
**有用的是这些`x-ms-file-name` `x-ms-file-path` `Content-Length` `content-type`**
**好了,回到具体操作上**
在exe判断下面的no分支下,同之前一样,新建一个控制语句`control`,选择条件控制`condition`这次可以继续选择使用`content-type`,因为压缩文件不只一种后缀,如图

之后就是老生常谈的事情了,重复各类控制,比如判断文件名包含`economist`,将`economist`单独归档等等,
不再赘述。
#总结
##进阶玩法
使用FLOW其实还可以完成很多事情,里面包含了许多的`connecter`和`trigger`,还是以`index`举例,
比如我可以设置一个按钮,然后输入路径,可以直接在该路径新建一个`.password`文件,甚至是复制到
其他各个目录,文件内容可以提前弄个文件范本设好密码,只需要利用FLOW`copy`到对应路径,便完
成了多个目录密码的设定,也可以单独设定密码。若以后有需要更新密码,只需要设定一个trigger监视
文件是否更改,然后将其他密码文件一块更新即可,而不用重复进行无意义的操作,节约时间。对于
button功能来说,手机上FLOW的app就挺管用了。
## 结语
FLOW 还是有些不完善,但应用到工作中,可以节省很多的时间,也能减少出错的概率,FLOW上也有现成的模板,
自建FLOW,基础应用也不需要太多的知识,高阶点则是API开发模式,可以达到和INDEX类项目相当的许多功能。
待完善...
@urpp
|