写了个简单的接力工具

两会期间,各种工具的效果都会大幅度下降。在这种情况下,作为翻译组,想要好好干活也是挺麻烦的,于是,便写了一些简单的工具,来解决这种特殊情况下的尴尬问题。

场景描述

在翻译组,我们有专门的机器来负责内容抓取 & 转化成为 markdown,但同时,文章中会有一些图片,种种原因,会导致这些图片无法访问。在翻译的时候,我们需要对这些图片进行下载,在这种情况下,就会很麻烦。我们需要一个更加简单的方式,来完成文件的下载。

解决方案 – Simple Proxy

Simple Proxy 就是来解决这个问题的,他可以让你很方便的完成外网的文件下载(当然,前提是你的 Proxy Server 可以访问到这个文件。

使用方法:

  1. 找到你要下载的文件,比如 https://img.linux.net.cn/data/attachment/album/202005/23/201448jcxlcci1f1z4c2l2.jpg
  2. 在你的域名前加入测试域名作为前缀,比如 https://simpleproxydemo.herokuapp.com/img.linux.net.cn/data/attachment/album/202005/23/201448jcxlcci1f1z4c2l2.jpg
  3. 访问新的地址,就会自动提醒你下载文件了。

使用建议

在实际的使用过程中,我给你的建议是,

  1. 使用 Heroku 部署 + 使用 Cloudflare 加速 + 一个短域名

这样可以让你的使用体验达到最佳。

如何自己部署

参考:https://github.com/bestony/simple-proxy

原理

Simple Proxy 的代码十分简单,加入了大量的注释,也不过 51 行。

最为核心的代码源自于其中的

res.set({
  'Content-Disposition': `attachment; filename=${filename}`
})
Code language: JavaScript (javascript)

这段代码的用户是为返回值设定 Header ,其中用到的 Header Content-Disposition 是 HTTP 协议早期定义的 Header 规范。

如果你将其值设置为 inline,其内容将会直接展示在界面中;

其值设置为 attachment 则可以启动系统浏览器自带的下载功能。

其值中加入 filename 则可以更进一步,在下载时,指定下载的名称,在本次的项目中,就借助了这样的功能,让下载的文件名不发生改变。

Reference

One thought on “写了个简单的接力工具

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注