私有签名访问
如果文件位于私有 Bucket 中,通常不能直接公开访问。这时可以通过签名链接临时授权访问文件。
七彩云对象存储的签名访问规则 完全兼容 S3,因此大多数标准 S3 SDK 都可以直接生成预签名链接。
什么是签名链接
签名链接是一种带有时效和校验信息的临时访问地址。
它适合:
- 私有文件下载
- 临时授权访问
- 会员资源发放
- 内部文件共享
- 用户专属资源分发
常见使用场景
- 用户点击后短时间内下载文件
- 后台生成临时访问地址
- 避免文件被长期公开暴露
- 对付费或敏感资源进行受控访问
签名访问的优点
- 不需要把对象改成公有
- 可以控制有效期
- 更适合私有资源分发
- 可以由服务端按权限动态生成
- 可直接复用标准 S3 签名逻辑
使用建议
- 签名链接应设置合理的有效期
- 不建议把长期有效的私有访问链接直接暴露给前端
- 对高价值资源建议由服务端控制签发逻辑
- 如果文件权限变化,应同步检查签名访问策略
- 建议把签发日志和业务用户关联起来,便于审计
有效期怎么定
可按场景参考:
- 页面即时预览:60 秒到 5 分钟
- 普通下载:5 分钟到 30 分钟
- 后台任务回传:按任务窗口单独评估
不建议默认设置成非常长的有效期。
适合哪些资源
- 付费内容
- 内部附件
- 临时下载文件
- 用户专属资源
设计建议
自行开发签发接口时,至少应控制:
- 当前用户是否有访问权限
- 对象 Key 是否属于当前业务范围
- 有效期是否过长
- 是否限制下载文件名或响应头
- 是否需要记录签发人、签发时间和资源标识
兼容性说明
由于七彩云对象存储签名访问完全兼容 S3,因此:
- 使用 AWS SDK 生成预签名链接通常可直接适配
- 工具或程序如遇问题,优先检查 Endpoint、Region、Key 和访问风格
- 如果你同时使用主机模式和路径模式,建议整个项目统一一套签名生成策略
常见问题
签名链接生成成功但访问失败
优先检查:
- 生成链接时使用的 Endpoint 是否正确
- Region 是否为
us-west - 服务器时间是否准确
- Key 是否拼写正确
- Bucket 是否正确
- 链接使用的访问风格是否与当前工具配置一致
为什么不要把超长有效期链接直接发给前端?
因为它本质上仍然是可传播的访问凭证。链接一旦被转发、抓包或缓存,就可能在有效期内被他人使用。