跳到主要内容

私有签名访问

如果文件位于私有 Bucket 中,通常不能直接公开访问。这时可以通过签名链接临时授权访问文件。

七彩云对象存储的签名访问规则 完全兼容 S3,因此大多数标准 S3 SDK 都可以直接生成预签名链接。

什么是签名链接

签名链接是一种带有时效和校验信息的临时访问地址。

它适合:

  • 私有文件下载
  • 临时授权访问
  • 会员资源发放
  • 内部文件共享
  • 用户专属资源分发

常见使用场景

  • 用户点击后短时间内下载文件
  • 后台生成临时访问地址
  • 避免文件被长期公开暴露
  • 对付费或敏感资源进行受控访问

签名访问的优点

  • 不需要把对象改成公有
  • 可以控制有效期
  • 更适合私有资源分发
  • 可以由服务端按权限动态生成
  • 可直接复用标准 S3 签名逻辑

使用建议

  • 签名链接应设置合理的有效期
  • 不建议把长期有效的私有访问链接直接暴露给前端
  • 对高价值资源建议由服务端控制签发逻辑
  • 如果文件权限变化,应同步检查签名访问策略
  • 建议把签发日志和业务用户关联起来,便于审计

有效期怎么定

可按场景参考:

  • 页面即时预览:60 秒到 5 分钟
  • 普通下载:5 分钟到 30 分钟
  • 后台任务回传:按任务窗口单独评估

不建议默认设置成非常长的有效期。

适合哪些资源

  • 付费内容
  • 内部附件
  • 临时下载文件
  • 用户专属资源

设计建议

自行开发签发接口时,至少应控制:

  • 当前用户是否有访问权限
  • 对象 Key 是否属于当前业务范围
  • 有效期是否过长
  • 是否限制下载文件名或响应头
  • 是否需要记录签发人、签发时间和资源标识

兼容性说明

由于七彩云对象存储签名访问完全兼容 S3,因此:

  • 使用 AWS SDK 生成预签名链接通常可直接适配
  • 工具或程序如遇问题,优先检查 Endpoint、Region、Key 和访问风格
  • 如果你同时使用主机模式和路径模式,建议整个项目统一一套签名生成策略

常见问题

签名链接生成成功但访问失败

优先检查:

  • 生成链接时使用的 Endpoint 是否正确
  • Region 是否为 us-west
  • 服务器时间是否准确
  • Key 是否拼写正确
  • Bucket 是否正确
  • 链接使用的访问风格是否与当前工具配置一致

为什么不要把超长有效期链接直接发给前端?

因为它本质上仍然是可传播的访问凭证。链接一旦被转发、抓包或缓存,就可能在有效期内被他人使用。

相关页面