Appearance
部署指南
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 规则配置。
部署验收
- 确认生产配置的
wuli3.aliyun.sts.folder=temp,重启后调用 STS 接口,检查返回的directory以temp/开头。 - 确认返回的 bucket、endpoint、prefixUrl 与目标存储和图片访问域名一致。
- 确认目标 bucket 上的
alang-temp-expire-1d规则已启用,前缀为temp/,过期天数为1。 - 上传一张测试图片,检查对象 key 和图片访问 URL;生命周期规则加载后通过对象 HEAD 响应的
x-oss-expiration核对匹配规则,并在到期调度后确认对象被清理。 - 确认正式资源位于其他前缀,未被临时目录规则匹配。
本仓库记录上述上线约定,提交配置文件不会自动创建或修改云端生命周期规则。