使用说明

注解

为花瓣网下载和堆糖网下载两个油猴脚本提供远程下载服务。 部署请查看上一篇,本篇内容旨在使用说明。


当您部署完成并正常提供服务后,用户下载请求并不会发送到程序中,您需要接入到官方系统中,步骤如下:

这里假设您提供服务的域名是http://tdi.demo.com,令牌是secret

NO.1 接入

  1. 打开开放平台的服务接入页面中: https://open.saintic.com/CrawlHuaban/Register

    image0

  2. 填写接入申请表单:

    • 域名即假设的http://tdi.demo.com
    • 令牌即假设的secret
    • 您可以点击资源限制,展开表单,可以设置内存、负载、磁盘,这是用户级限制,与系统级限制相辅相成。

    2.1 域名:虽然可以用IP:PORT形式,但是这种情况除非您特意设置了nginx,否则可能无法下载;

    2.2 令牌:长度要求大于2小于32字节,且以英文字母开头加英文字母、数字、下划线组成;

    2.3 资源限制:

    • 系统级限制默认上限是:内存使用率80%、五分钟负载5、程序下载目录所在磁盘使用率80%;
    • 用户级限制默认为0,即不限制,且仅能设置数字,0-100间的正整数。

    2.4 私有:您可以点击开关开启私有属性,开启后,此Tdi服务只为您的账号提供服务,您需要创建密钥,并在花瓣网、堆糖网的脚本功能设置中填写密钥,详情查看下方 NO.4 私有属性(专属的Tdi远程下载服务) 的介绍!

填写无误后,立即提交,系统会发送一次GET请求您的域名地址,令牌验证通过后,接入成功。

NO.2 过期清理

不论是普通部署还是使用Docker部署,接入服务后,下载请求就来了,压缩包会在本地存储,依照规则,目前保留压缩文件12h,过期后可以删除,避免占用磁盘空间。

清理过期文件流程:

  1. 遍历downloads目录,根据文件名查询创建时间,根据过期时长(12h)决定是否删除。
  2. 判定过期后,删除压缩文件,删除redis存储的key,并回调给开放平台接口。

注解

在v0.2.2版本后,清理时增加了一重判断,即同时需要满足 压缩文件创建之后超过了过期时长(12h) 才予以删除!

清理过期文件命令:

  1. 普通部署:

    进入程序目录src下,执行./cleanDownload.py,可使用-h查看帮助,目前支持--hours参数手动设置过期时长,其默认值是12,单位h

  2. Docker部署:

    假设容器名是tdi,在宿主机执行docker exec -it tdi cleanDownload.py或者是docker exec -it tdi ./cleanDownload.py即可,参数同上。

  3. 专属Tdi

    如果是您专属,您可以不执行这个定时任务,这样下载的图片压缩包将不会过期。

注解

建议将上述清理过期文件命令加入定时任务中,每分钟执行一次!

NO.3 定时检测

注解

此功能不是tdi程序本身所有的,而是中心端定时检测接入的URL,更新其状态、资源等。

  • 所以如果您想暂时停止服务,可以将状态设置为tardy(参考 2.1.3 修改配置,设置环境变量crawlhuabantdi_status=tardy,重启Web进程),如此定时检测(目前1分钟)后将更新此服务状态,将不再发送请求;若想恢复,需要此环境变量设置ready或删除条目,重启等待定时检测生效。
  • 您的服务可以随意停止,如果中心端接收到请求并转发到了您的程序,但程序无法正确响应,此时会由中心端本身提供下载。【另外,您现在也可以随时在控制台中直接删除接入的Tdi服务!】
  • 接收到请求时,将任务放到队列中,由rq进程处理,下载前检测磁盘使用率,大于80则停止下载,下载中亦检测,非正常停止下载会给出README.txt文件(同样在压缩包内),内含说明原因。

NO.4 私有属性(专属的Tdi远程下载服务)

注解

现已支持随时将公有Tdi设置为私有,也可以将私有设置为公有,且可以随时删除!

  1. 接入专属:您在填写接入表单时,打开”私有”开关,此Tdi即为您账号专属,只有此账号下的密钥能使用此Tdi远程下载。

  2. 创建密钥:登录到控制台,在“我的密钥”旁边有创建按钮,点击可打开表单,再点击 立即提交 按钮:

    image1

  3. 脚本设置:前两步完成后,系统并不能知道哪次请求隶属于您的账号,所以两个油猴脚本(花瓣网下载和堆糖网下载)需要进行功能设置,此设置要求油猴脚本的版本v1.0.0+

    在脚本生效页面(花瓣网画板页或个人主页、堆糖网专辑页),下载按钮旁有相应的脚本设置按钮,点击”设置”按钮在弹窗中选择“设置提醒“,填写并保存密钥即可(如图以堆糖网设置为例):

    image2

NO.5 报警

v0.2.2+添加了异常队列(即failed队列,下载任务异常时进入此队列)上报参数,同时增加了报警邮箱的配置 ALARMEMAIL ,当中心端检测到Tdi存在异常队列时,根据报警邮箱发送报警邮件。

报警邮箱的配置可不填,则视为放弃报警。

更多功能待开发

若您有有趣的功能或建议,可以在文档首页找到QQ群,当然也可以反馈问题。