Files
LabelChange-server/S3链接命名规范.md
2026-06-01 16:30:29 +08:00

2.8 KiB
Raw Blame History

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 前端实现

  1. 预生成S3链接

    • 在用户选择或粘贴图片时前端根据命名规则预生成S3链接
    • 生成唯一ID时使用GUID格式
    • 将预生成的链接添加到POD链接输入框中
  2. 上传文件

    • 上传文件时将交接单号和唯一ID传递给后端
    • 确保后端使用相同的命名规则生成文件名

3.2 后端实现

  1. 接收参数

    • 接收文件、类型、交接单号和唯一ID列表
    • 如果提供了唯一ID使用前端传递的ID生成文件名
    • 如果未提供唯一ID生成新的GUID
  2. 生成文件名

    • 按照命名规则生成文件名
    • 确保生成的链接与前端预生成的链接一致

4. 验证方法

  1. 前端验证

    • 检查预生成的S3链接格式是否符合规范
    • 验证链接是否包含交接单号、唯一ID和原始文件名
  2. 后端验证

    • 检查生成的文件名是否与前端传递的唯一ID一致
    • 验证生成的链接是否与前端预生成的链接一致
  3. 数据库验证

    • 检查存储在数据库中的POD链接是否与实际上传的文件链接一致

5. 注意事项

  1. 唯一性

    • 确保每个文件都有唯一的文件名,避免覆盖现有文件
    • 使用GUID作为唯一ID确保全球唯一性
  2. 一致性

    • 前端和后端必须使用相同的命名规则
    • 确保生成的链接格式完全一致
  3. 安全性

    • 确保S3链接具有适当的访问权限
    • 避免在链接中包含敏感信息
  4. 可维护性

    • 命名规则应易于理解和维护
    • 确保代码中的命名规则与文档保持一致

6. 版本历史

版本 日期 说明
1.0 2026-03-13 初始版本