Skip to content

Commit 50be30f

Browse files
author
吴炳亨
authored
Merge pull request #235 from NigelWu95/dev
Dev
2 parents c8d60ca + 7532470 commit 50be30f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+706
-614
lines changed

Diff for: README.md

+26-8
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@
2828
- [x] 根据音视频资源的 avinfo 信息来生成转码指令 [pfopcmd 配置](docs/pfopcmd.md)
2929
- [x] 对 m3u8 的资源进行读取导出其中的 ts 文件列表 [exportts 配置](docs/exportts.md)
3030
- [x] 批量下载资源到本地 [download 配置](docs/downloadfile.md)
31+
- [x] 批量下载资源到本地 [imagecensor 配置](docs/censor.md#图片审核)
32+
- [x] 批量下载资源到本地 [videocensor 配置](docs/censor.md#视频审核)
3133

3234
*【部分 process 属于危险操作,需要在启动后根据提示输入 y/yes 确认,如果不想进行 verify 验证则在命令行加入 -f 参数】*
3335

@@ -104,13 +106,13 @@ qsuits -path=qiniu://<bucket> -ak=<ak> -sk=<sk>
104106
支持从不同的云存储上列举出空间文件,默认线程数(threads 参数)为 30,1 亿以内文件可以不增加线程,通常云存储空间列举的必须参数包括密钥、空间名(通过
105107
path 或 bucket 设置)及空间所在区域(通过 region 设置,允许不设置的情况下表明支持自动查询):
106108

107-
|list| 密钥和 region 字段 | 对应关系和描述 |
108-
|------|---------------------------------------|---------------------------------------------|
109-
|qiniu|`ak=`<br>`sk=`<br>`region=z0/z1/z2/...`|密钥对应七牛云账号的 AccessKey 和 SecretKey<br>region使用简称(可不设置),参考[七牛 Region](https://developer.qiniu.com/kodo/manual/1671/region-endpoint)|
110-
|tencent|`ten-id=`<br>`ten-secret=`<br>`region=ap-beijing/...`| 密钥对应腾讯云账号的 SecretId 和 SecretKey<br>region使用简称(可不设置),参考[腾讯 Region](https://cloud.tencent.com/document/product/436/6224)|
111-
|aliyun|`ali-id=`<br>`ali-secret=`<br>`region=oss-cn-hangzhou/...`| 密钥对应阿里云账号的 AccessKeyId 和 AccessKeySecret<br>region使用简称(可不设置),参考[阿里 Region](https://help.aliyun.com/document_detail/31837.html)|
112-
|upyun|`up-name=`<br>`up-pass=`<br>| 密钥对应又拍云账号管理员的 username 和 password,又拍云存储目前没有 region 概念|
113-
|aws/s3|`s3-id=`<br>`s3-secret=`<br>`region=ap-east-1/...`| 密钥对应 aws/s3 api 账号的 AccessKeyId 和 SecretKey<br>region使用简称(可不设置),参考[AWS Region](https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html)|
109+
|storage| 密钥和 region 字段 | 对应关系和描述 |
110+
|---------|---------------------------------------|---------------------------------------------|
111+
|qiniu |`ak=`<br>`sk=`<br>`region=z0/z1/z2/...`|密钥对应七牛云账号的 AccessKey 和 SecretKey<br>region使用简称(可不设置),参考[七牛 Region](https://developer.qiniu.com/kodo/manual/1671/region-endpoint)|
112+
|tencent |`ten-id=`<br>`ten-secret=`<br>`region=ap-beijing/...`| 密钥对应腾讯云账号的 SecretId 和 SecretKey<br>region使用简称(可不设置),参考[腾讯 Region](https://cloud.tencent.com/document/product/436/6224)|
113+
|aliyun |`ali-id=`<br>`ali-secret=`<br>`region=oss-cn-hangzhou/...`| 密钥对应阿里云账号的 AccessKeyId 和 AccessKeySecret<br>region使用简称(可不设置),参考[阿里 Region](https://help.aliyun.com/document_detail/31837.html)|
114+
|upyun |`up-name=`<br>`up-pass=`<br>| 密钥对应又拍云账号管理员的 username 和 password,又拍云存储目前没有 region 概念|
115+
|aws/s3 |`s3-id=`<br>`s3-secret=`<br>`region=ap-east-1/...`| 密钥对应 aws/s3 api 账号的 AccessKeyId 和 SecretKey<br>region使用简称(可不设置),参考[AWS Region](https://docs.aws.amazon.com/zh_cn/general/latest/gr/rande.html)|
114116
#### file 文本文件行读取
115117
文件内容为资源列表,可按行读取输入文件的内容获取资源列表,文件行解析参数如下:
116118
`parse=tab/json` 表示输入行的格式
@@ -248,4 +250,20 @@ java.net.SocketTimeoutException: timeout
248250
2. 对于云存储文件列表列举操作记录的断点可以直接作为下次续操作的操作来使用完成后续列举,如断点文件为 <filename>.json,则在下次列举时使用断点文件作
249251
为前缀配置文件: prefix-config=<breakpoint_filepath> 即可。【该项参数请和其他参数保持一致放在命令行或配置文件中。】
250252
3. 对于 file 数据源产生的断点文件记录了读取的文本行,如果需要使用断点则需要检查对应文件中文本行位置再做截取,目前没有实现自动检测方式。
251-
4. 断点续操作时建议修改下 save-path,便于和上一次保存的结果做区分。
253+
4. 断点续操作时建议修改下 save-path,便于和上一次保存的结果做区分。
254+
255+
### 分布式任务方案
256+
对于不同账号或空间可以直接在不同的机器上执行任务,对于单个空间资源数量太大无法在合适条件下使用单台机器完成作业时,可分机器进行作业,如对一个空间列举完
257+
整文件列表时,可以按照连续的前缀字符分割成多段分别执行各个机器的任务,建议的前缀列表为:
258+
```!\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz```,将该列表任意分成 n 段,如:
259+
```
260+
prefixes=!,\,",#,$,%,&,',(,),*,+,\,,-,.,/,0,1
261+
prefixes=2,3,4,5,6,7,8,9,:,;
262+
prefixes=<,=,>,?,@,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O
263+
prefixes=P,Q,R,S,T,U,V,W,X,Y,Z,[,\\,\\,],^,_,`
264+
prefixes=a,b,c,d,e,f,g,h,i,j,k,l,m
265+
prefixes=n,o,p,q,r,s,t,u,v,w,x,y,z
266+
```
267+
**`,``\` 需要转义**)将前缀分为上述几段后,设置 prefixes 参数可以分做六台机器执行,同时因为需要列举空间全部文件,需要分别在第一段 prefixes
268+
设置 `prefix-left=true`,在最后一段 prefixes 设置 `prefix-right=true`(其他段 prefixes 不能同时设置 prefix-left 或 prefix-right,
269+
且仅能第一段设置 prefix-left 和最后一段设置 prefix-right,参数描述见[数据源完备性](docs/datasource.md##-数据源完备性和多前缀列举)

Diff for: docs/censor.md

+17-3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ domain=
1919
indexes=
2020
protocol=
2121
url-index=
22+
queries=
2223
scenes=
2324
```
2425
|参数名|参数值及类型 | 含义|
@@ -29,9 +30,14 @@ scenes=
2930
|domain| 域名字符串| 当数据源数据为文件名列表时,需要设置进行访问的域名,当指定 url-index 时无需设置|
3031
|indexes|字符串| 设置输入行中 key 字段的下标(有默认值),参考[数据源 indexes 设置](datasource.md#1-公共参数)|
3132
|protocol| http/https| 使用 http 还是 https 访问资源进行抓取(默认 http)|
32-
|url-index| 字符串| 通过 url 操作时需要设置的 url 索引(下标),需要手动指定才会进行解析|
33+
|url-index| 字符串| 通过 url 操作时需要设置的 [url 索引(下标)](#关于-url-index),需要手动指定才会进行解析,支持[需要私有签名的情况](#url-需要私有签名访问)|
34+
|queries| 字符串| url 的 query 参数或样式后缀,如 `-w480``?v=1.1&time=1565171107845`(这种形式请务必带上 ? 号,否则无效)[关于 queries 参数](#关于-queries-参数)|
3335
|scenes| 审核类型字符串| pulp/terror/politician,鉴黄、鉴暴恐、鉴政,多种类型同时审核可用 `_` 拼接,如:pulp_terror、pulp_terror_politician|
3436

37+
##### 关于 queries 参数
38+
queries 参数用于设置 url 的后缀或 ?+参数部分,内容审核可能会出现大图超过尺寸或大小导致失败,因此可以通过一些图片处理样式或参数来设置对处理之后的图
39+
片进行审核。当设置 private(私有签名)的情况下,该参数会使用在 privateurl 操作中(因为 privateurl 操作在前,当前操作在后)。
40+
3541
#### 视频审核
3642
审核 video 类型的资源,异步审核,审核结果输出为 jobId,要获取进一步的实际审核结果需要通过 id 查询,参考该工具的 [censorresult 操作](censorresult.md)
3743
七牛官网文档见:[通过jobid获取视频审核结果](https://developer.qiniu.com/censor/api/5620/video-censor#4),如果数据源的资源类型不确定
@@ -59,18 +65,26 @@ check-url=
5965
|domain| 域名字符串| 当数据源数据为文件名列表时,需要设置进行访问的域名,当指定 url-index 时无需设置|
6066
|indexes|字符串| 设置输入行中 key 字段的下标(有默认值),参考[数据源 indexes 设置](datasource.md#1-公共参数)|
6167
|protocol| http/https| 使用 http 还是 https 访问资源进行抓取(默认 http)|
62-
|url-index| 字符串| 通过 url 操作时需要设置的 url 索引(下标),需要手动指定才会进行解析|
68+
|url-index| 字符串| 通过 url 操作时需要设置的 [url 索引(下标)](#关于-url-index),需要手动指定才会进行解析,支持[需要私有签名的情况](#url-需要私有签名访问)|
6369
|scenes| 审核类型字符串| pulp/terror/politician,鉴黄、鉴暴恐、鉴政,多种类型同时审核可用 `_` 拼接,如:pulp_terror、pulp_terror_politician|
6470
|interval| 整型,单位 ms| 视频审核需要截帧,此参数设置截帧间隔,默认为5000(5s)|
6571
|saver-bucket| bucket名称|视频截帧产生的帧图进行保存的空间,不设置则不保存,默认不保存|
6672
|saver-prefix| 字符串| 视频截帧产生的帧图进行保存的文件名前缀,默认无|
6773
|callback-url| 公网可访问的 url 字符串| 设置回调地址|
6874
|check-url| true/false|表示是否在提交任务之前对回调地址进行简单的 post 请求验证(无body的纯post请求),默认为 true,如果无需验证则设置为 false|
6975

70-
### 关于 url-index
76+
#### 关于 url-index
7177
当使用 file 源且 parse=tab/csv 时 [xx-]index(ex) 设置的下标必须为整数。url-index 表示输入行含 url 形式的源文件地址,未设置的情况下则使用
7278
key 字段加上 domain 的方式访问源文件地址,key 下标用 indexes 参数设置。
7379

80+
#### url 需要私有签名访问
81+
当进行图片审核的 url 需要通过私有鉴权访问时(资源来自于存储私有权限的空间),本工具支持串联操作,即先进行对应的私有签名再提交审核,使用 private 参
82+
数设置,如不需要进行私有访问则不设置,目前支持四类签名:
83+
`private=qiniu` [七牛云私有签名](privateurl.md#七牛配置参数)
84+
`private=tencent` [腾讯云私有签名](privateurl.md#其他存储配置参数)
85+
`private=aliyun` [阿里云私有签名](privateurl.md#其他存储配置参数)
86+
`private=s3` [AWS S3 私有签名](privateurl.md#其他存储配置参数)
87+
7488
## 命令行参数方式
7589
```
7690
-process=asyncfetch -ak= -sk= -domain= -protocol= ...

Diff for: docs/datasource.md

+10-9
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
## 简介
44
从支持的数据源中读入资源信息列表,部分数据源需要指定行解析方式或所需格式分隔符,读取指定位置的字段作为输入值进行下一步处理。**目前支持的数据源类型分为
5-
几大类型:云存储列举(list)、文件内容读取(file)**
5+
几大类型:云存储列举(storage)、文件内容读取(file)**
66

77
## 配置文件
88
数据源分为两种类型:云存储列举(storage)、文本文件行读取(file),可以通过 **path= 来指定数据源地址:
@@ -60,7 +60,7 @@ key,size:key,datetime。因此 `indexes` 可以设置多个键值对,每个键
6060
或者 `json``key` 名称列表,采用默认字段的设置方式时长度不超过 9,表明取对应顺序的前几个字段,当数据格式为 `tab/csv` 时索引必须均为整数,如
6161
果输入行中本身只包含部分字段,则可以在缺少字段的顺序位置用 `-1` 索引表示,表示跳过该顺序对应的字段,例如原输入行中不包含 mime 字段,则可以设置
6262
`indexes=0,1,2,3,-1,5`
63-
(2)当数据源为 [list](#3-storage-云存储列举) 类型时,也可以设置该参数,用于指定下一步 process 操作所需要的字段,默认情况下包含 `key` 的下标,如
63+
(2)当数据源为 [storage](#3-storage-云存储列举) 类型时,也可以设置该参数,用于指定下一步 process 操作所需要的字段,默认情况下包含 `key` 的下标,如
6464
果存在 process 操作则自动保留 `key` 字段或者根据过滤条件的字段进行添加,也可按照[indexes 规范](##-关于-indexes-索引)自行设置。
6565

6666
### 2 file 文本文件行读取
@@ -95,7 +95,7 @@ prefix-right=
9595
支持从不同的云存储上列举出空间文件,默认线程数(threads 参数)为 30,1 亿以内文件可以不增加线程,公共参数修改参考[公共参数配置](#1-公共参数),通常
9696
云存储空间列举的必须参数包括密钥、空间名(通过 path 或 bucket 设置)及空间所在区域(通过 region 设置,允许不设置的情况下表明支持自动查询):
9797

98-
|list| 密钥和 region 字段 | 对应关系和描述 |
98+
|storage| 密钥和 region 字段 | 对应关系和描述 |
9999
|------|---------------------------------------|---------------------------------------------|
100100
|qiniu|`ak=`<br>`sk=`<br>`region=z0/z1/z2/...`|密钥对应七牛云账号的 AccessKey 和 SecretKey<br>region(可不设置)使用简称,参考[七牛 Region](https://developer.qiniu.com/kodo/manual/1671/region-endpoint)|
101101
|tencent|`ten-id=`<br>`ten-secret=`<br>`region=ap-beijing/...`| 密钥对应腾讯云账号的 SecretId 和 SecretKey<br>region(可不设置)使用简称,参考[腾讯 Region](https://cloud.tencent.com/document/product/436/6224)|
@@ -114,14 +114,15 @@ prefix-right=
114114
|prefix-left| true/false| 当设置多个前缀时,可选择是否列举所有前缀 ASCII 顺序之前的文件|
115115
|prefix-right| true/false| 当设置多个前缀时,可选择是否列举所有前缀 ASCII 顺序之后的文件|
116116

117-
**备注:** 又拍云存储的列举不支持 prefix-left 和 prefix-right 参数,同时又拍云存储强制目录结构以 "/" 作为分隔符,不支持任意前缀列举,设置
118-
prefixes 的情况下必须是有效的目录名
119-
120-
#### # 关于多前缀列举
121-
prefixes 或 prefix-config 用于设置多个 <prefix> 分别列举这些前缀下的文件,如指定多个前缀:[a,c,d],则会分别列举到这三个前缀下的文件,如果设
117+
#### # 数据源完备性和多前缀列举
118+
1. prefix-left 为可选择是否列举所有前缀 ASCII 顺序之前的文件,prefix-right 为选择是否列举所有前缀 ASCII 顺序之后的文件,确保在没有预定义前缀的
119+
情况下仍能列举完整数据。
120+
2. prefixes 或 prefix-config 用于设置多个 <prefix> 分别列举这些前缀下的文件,如指定多个前缀:[a,c,d],则会分别列举到这三个前缀下的文件,如果设
122121
置 prefix-config 则 prefixes 配置无效,同时 prefix-config 支持指定列举起始和结束位置(<start/marker>、<end>),写法如下,配置举例见
123122
[prefix-config 配置](../resources/prefixes.json)。在使用多个前缀列举的同时,可能存在需要列举到**第一个前缀之前****最后一个前缀之后**(前
124-
缀会自动按照 ASCII 码排序)的文件,因此设置 prefix-left 和 prefix-right 用于满足该需求。
123+
缀会自动按照 ASCII 码排序)的文件,因此设置 prefix-left 和 prefix-right 用于满足该需求。
124+
**备注:** 又拍云存储的列举不支持 prefix-left 和 prefix-right 参数,同时又拍云存储强制目录结构以 "/" 作为分隔符,不支
125+
持任意前缀列举,设置 prefixes 的情况下必须是有效的目录名。
125126

126127
##### prefix-config 配置
127128
```

Diff for: docs/downloadfile.md

+16-3
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ domain=
1313
protocol=
1414
indexes=
1515
url-index=
16-
host=
16+
queries=
1717
add-prefix=
1818
rm-prefix=
19-
indexes=
19+
host=
2020
pre-down=
2121
download-timeout=
2222
```
@@ -26,17 +26,30 @@ download-timeout=
2626
|domain| 域名字符串| 当数据源数据的资源为文件名列表时,需要设置进行访问的域名,当指定 url-index 时无需设置|
2727
|protocol| http/https| 使用 http 还是 https 访问资源进行下载(默认 http)|
2828
|indexes|字符串| 设置输入行中 key 字段的下标(有默认值),参考[数据源 indexes 设置](datasource.md#1-公共参数)|
29-
|url-index| 字符串| 通过 url 操作时需要设置的 url 索引(下标),需要手动指定才会进行解析|
29+
|url-index| 字符串| 通过 url 操作时需要设置的 [url 索引(下标)](#关于-url-index),需要手动指定才会进行解析,支持[需要私有签名的情况](#url-需要私有签名访问)|
30+
|queries| 字符串| url 的 query 参数或样式后缀,如 `-w480``?v=1.1&time=1565171107845`(这种形式请务必带上 ? 号,否则无效)[关于 queries 参数](#关于-queries-参数)|
3031
|add-prefix| 字符串| 表示为保存的文件名添加指定前缀|
3132
|rm-prefix| 字符串| 表示将得到的目标文件名去除存在的指定前缀后再作为保存的文件名|
3233
|host| 域名字符串| 下载源资源时指定 host|
3334
|pre-down| true/false|为 true 时表示预下载,即下载的内容不保存为文件,为 false 表示保存成本地文件,默认为 false|
3435
|download-timeout| 时间,单位秒|设置下载文件的超时时间,默认 1200s,下载大文件可根据需要调整|
3536

37+
### 关于 queries 参数
38+
queries 参数用于设置 url 的后缀或 ?+参数部分,资源下载可能需要下载不同格式或尺寸的如图片文件,因此可以通过一些图片处理样式或参数来设置对处理之后的
39+
图片进行下载。当设置 private(私有签名)的情况下,该参数会使用在 privateurl 操作中(因为 privateurl 操作在前,当前操作在后)。
40+
3641
### 关于 url-index
3742
当使用 file 源且 parse=tab/csv 时 [xx-]index(ex) 设置的下标必须为整数。url-index 表示输入行含 url 形式的源文件地址,未设置的情况下则使用
3843
key 字段加上 domain 的方式访问源文件地址,key 下标用 indexes 参数设置。
3944

45+
### url 需要私有签名访问
46+
当进行图片审核的 url 需要通过私有鉴权访问时(资源来自于存储私有权限的空间),本工具支持串联操作,即先进行对应的私有签名再提交审核,使用 private 参
47+
数设置,如不需要进行私有访问则不设置,目前支持四类签名:
48+
`private=qiniu` [七牛云私有签名](privateurl.md#七牛配置参数)
49+
`private=tencent` [腾讯云私有签名](privateurl.md#其他存储配置参数)
50+
`private=aliyun` [阿里云私有签名](privateurl.md#其他存储配置参数)
51+
`private=s3` [AWS S3 私有签名](privateurl.md#其他存储配置参数)
52+
4053
## 命令行参数方式
4154
```
4255
-process=download -ak= -sk= -to-bucket= -add-prefix= -domain= -protocol= -host= ...

0 commit comments

Comments
 (0)