不爆露文件路径的情况下如何低成本提供下载

2019-07-17 20:32:25 +08:00
 v2hub

描述:
对外只提供 /down.php?k=abc.exe&token=abcdefg
其中 abc.exe 是要下载的文件,后台会存储对应的文件路径。
token 是本次下载的验证,一直在变的。

文件存储再良心云的 cos 上,目前的方法是,用户访问 /down.php?k=abc.exe&token=abcdefg 的时候,服务器上从 cos 上读取这个文件并输出到用户浏览器中,提供下载。但是这样服务器的流量费和 cos 的流量费都要交,而且下载大文件的时候还影响了网站的速度,文件读取然后再输出到浏览器中消耗了 cpu 和内存。

如何再能够保护文件真实路径的情况下,更低成本的解决这个下载的问题?

1652 次点击
所在节点    问与答
7 条回复
oovveeaarr
2019-07-17 20:35:48 +08:00
这个上有效期的防盗链不就可以解决了
zacharyjia
2019-07-17 20:40:53 +08:00
oss 用私有 bucket,然后像楼上说的,每次用户访问你的 download.php 的时候,生成一个带有效期和签名的 oss 访问 url,直接跳转过去就行
dobelee
2019-07-17 20:44:58 +08:00
1. 想保护真实路径就得做文件路径映射。
2. 读取文件输出时少一点缓冲区节约内存。
3. 文件下载不存在低成本。
shiny
2019-07-17 20:51:26 +08:00
1. cos 走内网,不需要流量费
2. Nginx Sendfile 可以节省下载文件时的 CPU 和内存资源
3. 更成熟的方案就是 CDN URL 鉴权,可以解决服务器带宽占用问题。PHP 计算出鉴权信息,追加在 CDN URL 尾部,一段时间后过期。
oreoiot
2019-07-18 07:40:43 +08:00
谢谢辣鸡下载站,直接丢一个网盘链接??🤪🤪🤪
edgnoz
2019-07-18 10:27:03 +08:00
网盘啊
用 mega
速度还不错
v2hub
2019-07-18 11:40:14 +08:00
@oovveeaarr
@zacharyjia
我研究一下去

@dobelee
@shiny
谢谢

@oreoiot
@edgnoz
面向企业级的数据,不可能用第三方网盘的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583916

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX