2.8 KiB
2.8 KiB
S3链接命名规范
1. 目的
本文档旨在规范S3兼容存储的文件命名规则,确保前端预生成的S3链接与后端实际生成的链接一致,从而实现将S3链接直接存储在出货交接单的POD字段中。
2. 命名规则
2.1 基本格式
{endpoint}/{prefix}{handoverNumber}_{uniqueId}_{originalFileName}
2.2 各部分说明
- endpoint: S3兼容存储的端点,固定为
https://pod.us-ord-1.linodeobjects.com - prefix: 前缀,根据文件类型和年月生成
- 到货交接单:
arrivalhandover/{yearMonth}/ - 出货交接单:
shippinghandover/{yearMonth}/ - 其他:
pod/
- 到货交接单:
- handoverNumber: 交接单号,用于标识文件所属的交接单
- uniqueId: 唯一标识符,使用GUID格式,确保文件名唯一
- originalFileName: 原始文件名,保持文件的原始扩展名
2.3 示例
https://pod.us-ord-1.linodeobjects.com/shippinghandover/202603/BOL-GOFO-20260313123456_550e8400-e29b-41d4-a716-446655440000_example.jpg
3. 实现方式
3.1 前端实现
-
预生成S3链接
- 在用户选择或粘贴图片时,前端根据命名规则预生成S3链接
- 生成唯一ID时使用GUID格式
- 将预生成的链接添加到POD链接输入框中
-
上传文件
- 上传文件时,将交接单号和唯一ID传递给后端
- 确保后端使用相同的命名规则生成文件名
3.2 后端实现
-
接收参数
- 接收文件、类型、交接单号和唯一ID列表
- 如果提供了唯一ID,使用前端传递的ID生成文件名
- 如果未提供唯一ID,生成新的GUID
-
生成文件名
- 按照命名规则生成文件名
- 确保生成的链接与前端预生成的链接一致
4. 验证方法
-
前端验证
- 检查预生成的S3链接格式是否符合规范
- 验证链接是否包含交接单号、唯一ID和原始文件名
-
后端验证
- 检查生成的文件名是否与前端传递的唯一ID一致
- 验证生成的链接是否与前端预生成的链接一致
-
数据库验证
- 检查存储在数据库中的POD链接是否与实际上传的文件链接一致
5. 注意事项
-
唯一性
- 确保每个文件都有唯一的文件名,避免覆盖现有文件
- 使用GUID作为唯一ID,确保全球唯一性
-
一致性
- 前端和后端必须使用相同的命名规则
- 确保生成的链接格式完全一致
-
安全性
- 确保S3链接具有适当的访问权限
- 避免在链接中包含敏感信息
-
可维护性
- 命名规则应易于理解和维护
- 确保代码中的命名规则与文档保持一致
6. 版本历史
| 版本 | 日期 | 说明 |
|---|---|---|
| 1.0 | 2026-03-13 | 初始版本 |