下载与访问文件
文件上传成功后,接下来要确认资源如何被访问和下载。下载链路一旦定下来,后面尽量不要频繁改默认域名、签名策略和中转方式。
公有资源访问
如果文件位于公有 Bucket 中,通常可以直接访问。
适合:
- 网站图片
- 安装包下载
- 静态资源分发
- 公开附件
特点:
- 链接可直接分发
- 更适合下载分发型场景
- 可进一步结合自定义域名和 CDN 优化体验
私有资源访问
如果文件位于私有 Bucket 中,通常需要授权后访问。
常见方式:
- 服务端中转下载
- 生成临时签名链接
- 在业务系统中做权限校验后再返回访问地址
七彩云对象存储签名访问完全兼容 S3,因此标准 S3 SDK 通常可直接用于生成预签名链接。
下载型场景建议
对于下载站、资源站和大文件场景,建议重点关注:
- 资源链接是否稳定
- 访问域名是否统一
- 是否需要自定义域名
- 是否需要配合 CDN
- 是否支持断点续传
- 是否需要控制浏览器下载文件名
访问方式规划建议
在正式业务中,建议尽早确认:
- 使用默认域名还是自定义域名
- 资源是否需要公开访问
- 私有资源是否通过签名链接分发
- 前端是否直接拿访问链接,还是通过服务端发放
- 使用主机模式还是路径模式作为主访问结构
服务端下载代理适合什么场景
适合:
- 需要严格权限校验
- 需要隐藏真实存储地址
- 需要做下载次数统计
- 需要统一审计日志
缺点是:
- 会增加服务端带宽压力
- 会提高服务端响应成本
签名链接适合什么场景
适合:
- 私有文件临时下载
- 业务系统中按需授权
- 不希望服务端转发整个文件流
使用建议:
- 有效期尽量短
- 按用户、订单或资源权限生成
- 不要长期缓存给不可信客户端
常见问题
下载时直接打开而不是保存
通常需要根据业务场景设置合适的响应头,例如 Content-Disposition。
浏览器访问正常,但程序下载失败
优先检查:
- URL 是否走了签名
- Bucket 是否为私有
- 路径是否拼错
- 是否需要特定访问风格
- Endpoint 和 Region 是否正确
为什么正式环境链接经常变?
在不同地方混用默认域名、自定义域名、签名链接和服务端中转地址时,链接体系会很混乱。可统一规划一个主访问方案。