博客
关于我
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 数据库设计总结
    查看>>
    Mysql 数据库重置ID排序
    查看>>
    Mysql 数据类型一日期
    查看>>
    MySQL 数据类型和属性
    查看>>
    mysql 敲错命令 想取消怎么办?
    查看>>
    Mysql 整形列的字节与存储范围
    查看>>
    mysql 断电数据损坏,无法启动
    查看>>
    MySQL 日期时间类型的选择
    查看>>
    Mysql 时间操作(当天,昨天,7天,30天,半年,全年,季度)
    查看>>
    MySQL 是如何加锁的?
    查看>>
    MySQL 是怎样运行的 - InnoDB数据页结构
    查看>>
    mysql 更新子表_mysql 在update中实现子查询的方式
    查看>>
    MySQL 有什么优点?
    查看>>
    mysql 权限整理记录
    查看>>
    mysql 权限登录问题:ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password: YES)
    查看>>
    MYSQL 查看最大连接数和修改最大连接数
    查看>>
    MySQL 查看有哪些表
    查看>>
    mysql 查看锁_阿里/美团/字节面试官必问的Mysql锁机制,你真的明白吗
    查看>>
    MySql 查询以逗号分隔的字符串的方法(正则)
    查看>>
    MySQL 查询优化:提速查询效率的13大秘籍(避免使用SELECT 、分页查询的优化、合理使用连接、子查询的优化)(上)
    查看>>