在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称(OpenSource Name):iwestlin/gd-utils开源软件地址(OpenSource Url):https://github.com/iwestlin/gd-utils开源编程语言(OpenSource Language):HTML 79.1%开源软件介绍(OpenSource Introduction):Google Drive 百宝箱目录
更新日志demohttps://drive.google.com/drive/folders/124pjM5LggSuwI1n40bcD5tQ13wS0M6wg @roshanconnor123)English Version (thanks to无需域名和nginx版
https://github.com/dissipator/gd-utils @orange2008)colab脚本(省去本地安装步骤,直接网页可用,感谢贡献者https://colab.research.google.com/drive/1i1W9nAzgiDtfA_rmTBcpMpwxVUhwgLsq
colab使用录屏:https://drive.google.com/drive/folders/19T37ARH7M1h67JGYanKp9LvORjJLEp_x 这里还有另一位网友@iErics制作的colab脚本,界面更加规整,功能也更完整些(比如可以选择是否继续任务等),使用方法大同小异: https://colab.research.google.com/github/iErics/gd-utils/blob/master/Colab_gd_utils.ipynb @vitaminx)一键安装脚本(感谢 脚本制作者
请访问 https://github.com/vitaminx/gd-utils 获取安装方法 @liaojack8)繁体中文版(感谢贡献者https://github.com/liaojack8/gd-utils-cht
@gdtool)Docker 版(感谢贡献者https://github.com/gdtool/gd-utils-docker 常见问题如果你遇到任务完成时拷贝成功的文件少于统计的文件数,请务必点击查看 在命令行操作时有时会输出Google内部报错信息,这是正常情况,不会影响最终结果,因为程序对每个请求都有7次重试的机制。 如果经常出现404 file not found的错误,说明是sa的权限有问题,请点击上面的链接查看解决办法。 复制结束后,如果最后输出的消息里有 如果你复制完成以后,统计新的文件夹链接发现文件数比源文件夹少,说明Google正在更新数据库,请给它一点时间,一般等半小时再统计数据会比较完整。 如果你使用tg机器人拷贝文件数超多的目录时,发送拷贝命令以后,任务进度很久未开始,这是因为程序正在获取源文件夹的所有文件信息。 转存的运行机制严格按照以下顺序:
如果源文件夹的文件数非常多(数十万),在命令行操作时需要添加额外参数:(因为程序运行的时候会把文件信息保存在内存中,文件数太多的话容易内存占用太多被nodejs干掉)
这样进程就能最大占用 1G 内存了,我最多测试过200万+文件数的任务,1G 内存足以完成。 这里还有一些网友的踩坑心得,如果你配置的时候也不小心掉进坑里,可以进去找找有没有解决办法: 搭建过程机器人搭建过程录屏:https://drive.google.com/drive/folders/1Lu7Cwh9lIJkfqYDIaJrFpzi8Lgdxr4zT 需要注意的地方:
功能简介本工具目前支持以下功能:
环境配置本工具需要安装nodejs,客户端安装请访问https://nodejs.org/zh-cn/download/,服务器安装可参考https://github.com/nodesource/distributions/blob/master/README.md#debinstall 建议选择v12版本的node,以防接下来安装依赖出错。 如果你的网络环境无法正常访问谷歌服务,需要先在命令行进行一些配置:(如果可以正常访问则跳过此节)
请把 其他环境nodejs本身是跨平台的,所以项目可以在各种操作系统上运行,下面的说明是针对Linux系统,如果你需要在 Windows 或 Android 上进行安装,可以参考: https://github.com/roshanconnor123/gd-utils#installation (英文) 依赖安装
如果在安装过程中发生报错,请切换nodejs版本到v12再试。如果报错信息里有 如果报错信息里有 依赖安装完成后,项目文件夹下会多出个 Service Account 配置强烈建议使用service account(后称SA),因为机器人的所有操作默认都用的SA权限。 SA授权文件获取方法请参见 获取到 SA 的 json 文件并将其加入团队盘成员后,请将文件拷贝到gd-utils的 配置好 SA 以后,如果你不需要对个人盘下的文件进行操作,可跳过[个人帐号配置]这节,而且命令行执行命令的时候,记得带上 个人帐号配置
如果你没有配置过rclone,可以搜索 如果你的 获取自己的clinet_id可以参见这两篇文章:Cloudbox/wiki/Google-Drive-API-Client-ID-and-Client-Secret 和 https://p3terx.com/archives/goindex-google-drive-directory-index.html#toc_2 获取到client_id和client_secret后,再次执行一遍 参数配置好以后,在命令行执行 Bot配置如果要使用 telegram bot 功能,需要进一步配置。 首先在 https://core.telegram.org/bots#6-botfather 根据指示拿到 bot 的 token,然后填入 config.js 中的 然后获取自己的 telegram username,这个username不是显示的名称,而是tg个人网址后面的那串字符,比如,我的tg个人网址是 如果想把机器人的使用权限分享给别的用户,只需要改成:
接下来需要将代码部署到服务器上。
如果你一开始就是在服务器上配置的,可以直接执行 如果你之前是在本地操作的,请在服务器上同样重复一遍,配置好相关参数后,执行 安装好pm2之后,执行 如果你启动程序后想看运行日志,执行 查看 pm2 守护的进程列表,执行 停止运行中的进程,执行 如果你修改了代码中的配置,需要
接下来可通过nginx或其他工具起一个web服务,示例nginx配置:
配置好nginx后,可以再套一层cloudflare,具体教程请自行搜索。 检查网站是否部署成功,可以命令行执行(请将YOUR_WEBSITE_URL替换成你的网址)
如果返回了 最后,在命令行执行(请将
这样,就将你的服务器连接上你的 telegram bot 了,试着给bot发送个 补充说明在
读者可根据各自情况进行调整 专家设置这一节面向更加注重安全的专家用户,并假设读者了解nodejs的基本语法 在 // 如果设置了这个值,那么调用 /api/gdurl/count 这个接口必须携带一个叫 passkey 的query,且必须等于ROUTER_PASSKEY的值
// 如果不设置这个值,那么默认关闭 /api/gdurl/count 这个接口的功能(因为观察到很多用户公开的贴出了自己的API地址……)
const ROUTER_PASSKEY = 'your-custom-passkey'
// 与你的服务器通信的tg服务器的 ip 地址,可以在pm2 logs 中看到
// 如果设置了这个值,那么调用 /api/gdurl/tgbot 这个接口的IP地址必须是 TG_IPLIST 数组的其中之一
// 如果不设置这个值,则默认任何IP都可以调用此接口(考虑到后面还有个 tg username的白名单验证)
const TG_IPLIST = ['tg-ip-address']
module.exports = {
AUTH,
PARALLEL_LIMIT,
RETRY_LIMIT,
TIMEOUT_BASE,
TIMEOUT_MAX,
LOG_DELAY,
PAGE_SIZE,
DEFAULT_TARGET,
ROUTER_PASSKEY,
TG_IPLIST
} 注意事项gd-utlis(以及所有GD转存工具)的原理是调用了google drive官方接口 gd-utils比较快的原因在与其他工具的对比有具体阐述,概括来讲,当它进行转存任务时,不会向google服务器查询目标文件是否已存在,因为它会把复制记录存储在本地数据库,这样就节省了查询花费的时间,而查询接口是google drive所有接口里最耗时的。 这也就导致了gd-utils目前无法对已存在的文件进行增量更新,除非文件之前就是它拷贝的,由于它已经将记录保存在本地,所以可以对之前的记录进行增量更新。 目前尚不知道google是否会对接口做频率限制,也不知道会不会影响google账号本身的安全。 请勿滥用,后果自负 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论