博客
关于我
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 CONCAT()函数拼接有NULL
    查看>>
    multiprocessing.Manager 嵌套共享对象不适用于队列
    查看>>
    multiprocessing.pool.map 和带有两个参数的函数
    查看>>
    MYSQL CONCAT函数
    查看>>
    multiprocessing.Pool:map_async 和 imap 有什么区别?
    查看>>
    MySQL Connector/Net 句柄泄露
    查看>>
    multiprocessor(中)
    查看>>
    mysql CPU使用率过高的一次处理经历
    查看>>
    Multisim中555定时器使用技巧
    查看>>
    MySQL CRUD 数据表基础操作实战
    查看>>
    multisim变压器反馈式_穿过隔离栅供电:认识隔离式直流/ 直流偏置电源
    查看>>
    mysql csv import meets charset
    查看>>
    multivariate_normal TypeError: ufunc ‘add‘ output (typecode ‘O‘) could not be coerced to provided……
    查看>>
    MySQL DBA 数据库优化策略
    查看>>
    multi_index_container
    查看>>
    MySQL DBA 进阶知识详解
    查看>>
    Mura CMS processAsyncObject SQL注入漏洞复现(CVE-2024-32640)
    查看>>
    Mysql DBA 高级运维学习之路-DQL语句之select知识讲解
    查看>>
    mysql deadlock found when trying to get lock暴力解决
    查看>>
    MuseTalk如何生成高质量视频(使用技巧)
    查看>>