国外vps如果只用来科学上网,那每个月几百G的流量可能有些浪费了
在国内下载国外文件网速比较慢时,我们可以借助vps来帮助我们下载文件
理想的使用方式
- 不需要登录,功能尽可能简单,能方便下载
- 借助一个url就能实现借助vps下载文件
- vps只做下载文件中转功能
添加了前端UI界面
实现
- 这里我使用python 的request库来实现下载中转
- 我们将此python代码部署在vps上,前面再加一个nginx反向代理
- 下载url为 http://f.kkwen.cn/vps?url=你要下载的文件url
- 例: http://f.kkwen.cn/vps?url=https://nginx.org/download/nginx-1.16.0.tar.gz
python代码 vps_transfer_download.py
from flask import Flask, abort, Response, request
import os
import requests
app = Flask(__name__)
app.config["DEBUG"] = False
file_obj = None
def generate(file_obj):
while True:
content = file_obj.raw.read(102400)
if content:
yield content
else:
break
@app.route('/vps', methods=['GET'])
def download_file():
try:
url = request.args.get('url')
filename = os.path.basename(url)
file_obj = requests.get(url, stream=True)
headers = file_obj.headers
s = Response(generate(file_obj), content_type=headers.get('Content-Type'))
for k, v in headers.items():
s.headers[k] = v
s.headers['Content-Disposition'] = "attachment; filename={}".format(filename)
return s
except Exception as e:
if file_obj is not None:
file_obj.close()
Response.close()
abort(404)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=8000)
Nginx的Server段配置 f_vps_transfer_download.conf
server {
listen 80;
server_name f.kkwen.cn;
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header Referer $http_referer;
proxy_set_header Cookie $http_cookie;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_redirect off;
}
}
手动部署
部署python
先安装python模块requests和flask]# pip install requests flask
]# nohup python vps_transfer_download.py &
部署Nginx
将f_vps_transfer_download.conf放置在nginx的conf.d目录下,然后执行 nginx -s reload
使用Docker部署
]# docker run -it -d -e "NGX_DOMAIN=your.domain.name" --rm -p 80:80 --name downloader aik8s/vps-downloader:v0.2
6 条评论
开启全局代理不是差不多嘛
理论上是一样的,但是实际测试,开全局代理下载速度比这种下载速度慢一点
[...]之前按照网上的文章《vps-downloader 文件下载器》 ,本人在自己的 VPS 上搭建过了类似的加速下载器了(http://frps.dlgcy.com:9092/ ,此地址可能会失效,原作者的也失效了):[...]
老哥,可以!
[...]之前按照网上的文章《vps-downloader 文件下载器》,本人在自己的 VPS 上搭建过了类似的加速下载器了(http://frps.dlgcy.com:9092/ ,此地址可能会失效,原作者的也失效了):[...]
老哥,可以呀