博客
关于我
OSS 前端直传的后端签名过程
阅读量:699 次
发布时间:2019-03-17

本文共 1963 字,大约阅读时间需要 6 分钟。

OSS 前端直传 的 后端 签名 处理

在 本文 中,我们 将 详细介绍 OSS 前端 直传 到 后端 的 签名 处理流程。该流程 涉及 到 生成 签名 URL 的 方法,确保 前端 直传 到 Oss 服务器 的 请求 被正确 验证 并 执行。

1. 获取 Oss 配置信息

在 开始 处理 前,首先 需要 获取 Oss 的 配置 信息。这些 配置 信息 包括 Oss 的 域名、访问 密钥 等。可以 从 配置 文件 或 数据库 中 获取。以下 是 获取 配置 信息 的 代码示例:

OSSConfig ossConfig = new OSSConfig();
ossConfig.setDomain("your-oss-domain");
ossConfig.setAccessKey("your-access-key");
ossConfig.setSecretKey("your-secret-key");

2. 生成 签名 URL

通过 生成 签名 URL,可以 给 前端 返回 需要上传 资源 的 URL。以下 是 生成 签名 URL 的 核心 逻辑:

  • 获取 元数据:获取 要上传 资源 的 元数据,包括 文件 的 名称、大小、 MIME 类型 等。

  • 生成 policy:使用 Oss 客户端 创建一个新的 签名策略(Policy),指定 匹配模式(MatchMode)和 条件(PolicyConditions)。

  • 签名验证:将生成的 policy 进行签名验证,确保 签名 的 合法性。

  • 返回 签名 URL:将 签名 URL 返回 给 前端,前端 可以 直接 使用该 URL 进行 资源上传。

  • 3. 处理 条件请求

    在 生成 签名 URL 的同时,需要 处理 条件请求(Condition)。条件请求 可以 包括 文件 的 MD5 值、大小、 MIME 类型 等信息。以下 是 条件请求 的 示例:

    Map
    conditions = new HashMap<>();
    conditions.put("key", "prefix=folder1/");
    conditions.put("key", "filename*.md");

    4. 签名策略 的 匹配 模式

    在 签名策略 中,匹配 模式(MatchMode)决定了 签名策略 如何 匹配 资源。常用的匹配 模式 有两种:

    • MatchMode NONE:不限制 资源 的 匹配规则。
    • MatchMode Exact:严格匹配 资源 的 名称、大小和 MIME 类型。

    5. 签名策略 的 条件集合

    签名策略 的 条件集合(PolicyConditions)可以 包括 多个 条件。这些 条件 会被 并联执行,确保 资源 满足 所有 条件 才能 进行 签名。

    6. 签名 URL 的 有效期

    生成 的 签名 URL 通常 会设置 有效期,确保 资源 在 有效期 内 可以 被上传。如果 有效期过短,可以 在 签名策略 中 增加 有效期。

    7. 前端 直传 到 Oss

    前端 直传 到 Oss 的 详细流程 如下:

  • 前端 发送 HTTP 请求 到 后端 的 直传 接口。
  • 后端 接收 到 请求 后,根据 签名 URL 生成 签名。
  • 后端 返回 给 前端 签名 URL。
  • 前端 使用 签名 URL 直接 调用 Oss 客户端 进行 资源上传。
  • 8. 签名 URL 的 加密

    为了 增强 安全性,签名 URL 可以 被 加密。前端 在 调用 直传 接口 时,传递 加密 的签名 URL。后端 收到 后,解密 签名 URL 并 进行 验证。

    9. 处理 上传 过程

    在 上传 过程 中,需要 处理 大文件 的 分割上传。Oss 提供了 分割上传 的 接口,可以 将 大文件 分成 多个 小片 进行 上传。

    10. 签名 签名 的 验证

    在 上传 过程 中,必须 确保 签名 的 验证 是 成功的。如果 签名 验证 失败,需要 处理 相应的 错误 信息。

    11. 优化 和 错误 处理

    在 实现过程 中,需要 对 签名 URL 的 有效性 进行 检查,避免 假 签名 URL 被 运用。此外,错误 处理 也 是 关键环节之一。

    12. 性能 优化

    在 高并发 的场景 下,需要 对 签名 URL 的 生成 和 验证 进行 优化。可以 考虑 缓存 签名 URL,减少 服务器 的 负载。

    通过以上 步骤,可以清楚地 看到 OSS 前端 直传 的 后端 签名 处理 的详细流程。该流程 的 关键 在于 生成 签名 URL 的 方法,以及 前端 和 后端 之间 的通信机制。通过 合理 的 签名策略 和 条件设置,可以 确保 资源 的 安全性 和 有效性。

    转载地址:http://qopez.baihongyu.com/

    你可能感兴趣的文章
    mysql中cast() 和convert()的用法讲解
    查看>>
    mysql中datetime与timestamp类型有什么区别
    查看>>
    MySQL中DQL语言的执行顺序
    查看>>
    mysql中floor函数的作用是什么?
    查看>>
    MySQL中group by 与 order by 一起使用排序问题
    查看>>
    mysql中having的用法
    查看>>
    MySQL中interactive_timeout和wait_timeout的区别
    查看>>
    mysql中int、bigint、smallint 和 tinyint的区别、char和varchar的区别详细介绍
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中json_extract的使用方法
    查看>>
    mysql中kill掉所有锁表的进程
    查看>>
    mysql中like % %模糊查询
    查看>>
    MySql中mvcc学习记录
    查看>>
    mysql中null和空字符串的区别与问题!
    查看>>
    MySQL中ON DUPLICATE KEY UPDATE的介绍与使用、批量更新、存在即更新不存在则插入
    查看>>
    MYSQL中TINYINT的取值范围
    查看>>
    MySQL中UPDATE语句的神奇技巧,让你操作数据库如虎添翼!
    查看>>
    Mysql中varchar类型数字排序不对踩坑记录
    查看>>
    MySQL中一条SQL语句到底是如何执行的呢?
    查看>>
    MySQL中你必须知道的10件事,1.5万字!
    查看>>