Skip to content

部署指南 ​

OSS 临时上传目录 ​

STS 上传使用 temp 作为根目录:

yaml
wuli3:
  aliyun:
    sts:
      folder: temp

当前 application-dev.yml 已设置该值。生产部署时应在生产配置中显式设置, 不要依赖基础配置或其他 profile 的目录默认值。 STS 返回的 directory 会包含临时根目录和日期子目录,例如 temp/202611/9/15。 前端按接口返回的 directory 上传,使用 prefixUrl 拼接访问地址。

上线时配置 1 天过期 ​

在实际部署使用的 OSS bucket 中新增以下生命周期规则:

项目约定
规则名称alang-temp-expire-1d
状态启用
匹配方式对象名前缀
前缀temp/,包含末尾斜杠,覆盖其全部子目录
时间依据对象最后修改时间
过期天数1 天
到期操作删除对象

在 OSS 控制台进入目标 bucket 的生命周期配置,按上表新增规则并保存。 保留 bucket 已有的其他规则,确认没有前缀重叠的删除规则;不要将本规则的匹配前缀留空。 若使用 API 或工具部署,应先读取现有生命周期配置,再合并新增规则。

规则中的关键字段如下,合并到完整 bucket 生命周期配置中使用:

xml
<Rule>
  <ID>alang-temp-expire-1d</ID>
  <Prefix>temp/</Prefix>
  <Status>Enabled</Status>
  <Expiration>
    <Days>1</Days>
  </Expiration>
</Rule>

OSS 按周期执行生命周期任务,1 天表示过期规则阈值,实际删除由 OSS 调度完成, 不能据此保证上传后精确 24 小时删除。规则加载也需要时间。 参见 阿里云生命周期规则说明。

如 bucket 开启版本控制,部署时还需核对历史版本和删除标记的清理策略; 当前版本的过期规则不能保证历史版本同步清除。

临时资源的使用边界 ​

  • temp/ 中的文件会被生命周期规则清理,业务需要长期保存的图片应先转存至正式资源目录,再保存正式 URL。
  • 将临时 URL 写入数据库不会自动将对象转为正式资源;当前资源清理监听器仅记录日志,不负责转存或执行 OSS 删除。
  • temp/ 生命周期规则覆盖匹配的现有对象和后续对象。既有 uploads/ 对象不在本规则范围内,不随目录切换自动迁移或删除。
  • STS 的 duration-seconds 控制临时凭证有效期,保持现有 900 秒;对象的 1 天生命周期通过 OSS bucket 规则配置。

部署验收 ​

  1. 确认生产配置的 wuli3.aliyun.sts.folder=temp,重启后调用 STS 接口,检查返回的 directory 以 temp/ 开头。
  2. 确认返回的 bucket、endpoint、prefixUrl 与目标存储和图片访问域名一致。
  3. 确认目标 bucket 上的 alang-temp-expire-1d 规则已启用,前缀为 temp/,过期天数为 1。
  4. 上传一张测试图片,检查对象 key 和图片访问 URL;生命周期规则加载后通过对象 HEAD 响应的 x-oss-expiration 核对匹配规则,并在到期调度后确认对象被清理。
  5. 确认正式资源位于其他前缀,未被临时目录规则匹配。

本仓库记录上述上线约定,提交配置文件不会自动创建或修改云端生命周期规则。