描述:
对外只提供 /down.php?k=abc.exe&token=abcdefg
其中 abc.exe 是要下载的文件,后台会存储对应的文件路径。
token 是本次下载的验证,一直在变的。
文件存储再良心云的 cos 上,目前的方法是,用户访问 /down.php?k=abc.exe&token=abcdefg 的时候,服务器上从 cos 上读取这个文件并输出到用户浏览器中,提供下载。但是这样服务器的流量费和 cos 的流量费都要交,而且下载大文件的时候还影响了网站的速度,文件读取然后再输出到浏览器中消耗了 cpu 和内存。
如何再能够保护文件真实路径的情况下,更低成本的解决这个下载的问题?
1
oovveeaarr 2019-07-17 20:35:48 +08:00 1
这个上有效期的防盗链不就可以解决了
|
2
zacharyjia 2019-07-17 20:40:53 +08:00 via iPhone 1
oss 用私有 bucket,然后像楼上说的,每次用户访问你的 download.php 的时候,生成一个带有效期和签名的 oss 访问 url,直接跳转过去就行
|
3
dobelee 2019-07-17 20:44:58 +08:00 via Android 1
1. 想保护真实路径就得做文件路径映射。
2. 读取文件输出时少一点缓冲区节约内存。 3. 文件下载不存在低成本。 |
4
shiny 2019-07-17 20:51:26 +08:00 1
1. cos 走内网,不需要流量费
2. Nginx Sendfile 可以节省下载文件时的 CPU 和内存资源 3. 更成熟的方案就是 CDN URL 鉴权,可以解决服务器带宽占用问题。PHP 计算出鉴权信息,追加在 CDN URL 尾部,一段时间后过期。 |
5
oreoiot 2019-07-18 07:40:43 +08:00 via iPhone
谢谢辣鸡下载站,直接丢一个网盘链接??🤪🤪🤪
|
6
edgnoz 2019-07-18 10:27:03 +08:00
网盘啊
用 mega 速度还不错 |
7
v2hub OP |