-
Notifications
You must be signed in to change notification settings - Fork 424
/
md5
executable file
·25 lines (23 loc) · 1.38 KB
/
md5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/env node
const { argv } = require('yargs')
.usage('用法: ./$0 <目录ID> [options]')
.example('./$0 1ULY8ISgWSOVc0UrzejykVgXfVL_I4r75', '获取 https://drive.google.com/drive/folders/1ULY8ISgWSOVc0UrzejykVgXfVL_I4r75 内的所有文件信息,并将各文件的md5值和ID存入本地数据库中')
.example('./$0 1ULY8ISgWSOVc0UrzejykVgXfVL_I4r75 -s 10mb', '获取指定目录的所有文件信息,将不小于10MB大小的文件的md5值和ID存入本地数据库中')
.alias('s', 'size')
.describe('s', '不填默认存储所有文件的md5记录,如果设置了这个值,则过滤掉小于这个size的文件,必须以b结尾,比如10mb')
.alias('u', 'update')
.describe('u', '强制从线上获取信息(无视是否存在本地缓存)')
.alias('N', 'not_teamdrive')
.describe('N', '如果不是团队盘链接,可以加上此参数以提高接口查询效率,降低延迟')
.alias('S', 'service_account')
.describe('S', '使用service account获取文件信息,前提是必须在./sa目录下放置SA json文件')
.help('h')
.alias('h', 'help')
const { save_md5, validate_fid } = require('./src/gd')
const [fid] = argv._
if (validate_fid(fid)) {
const { update, size, not_teamdrive, service_account } = argv
save_md5({fid, size, not_teamdrive, update, service_account}).catch(console.error)
} else {
console.warn('目录ID缺失或格式错误')
}