本文介绍如何用预签名 URL 安全地让客户端端具备高性能的大文件上传能力。
安全建议:永远不要使用 API 下发 ak / sk
前端可以对预签名链接直接发起 PUT 请求,这样我们可以收获的好处有:
暴露客户端代码
或 被反编译
而泄露至关重要的 AccessKey 和 SecretKey;Content-Type
和 Content-Length
来防止客户端被破解,从而绕过业务策略的限制通过后端 API 生成用于上传的预签名链接:putObject-presigned-url
让后端程序(golang、python、php、nodejs)调用相应的 SDK 生成一个具有 PutObject 方法效力的「预签名」链接传递给 Web 页面的 Javascript 脚本。
客户端对 putObject-presigned-url 发起 PUT 请求,并完成文件上传
Javascript 脚本利用 网络请求组件(如 axios)来将本地文件 PUT 到上面提到的「预签名 PutObject 链接」
缤纷云开源了全功能预签名 API 本地部署项目。它无状态,可以作为微服务快速结合到当前的系统中。
上面的 Javascript 脚本在发起 Put 请求时将「Content-Type」设置为空值,建议使用缤纷云独有的 MIME 自动检测 功能。
本文介绍如何用预签名 URL 安全地让客户端端具备高性能的大文件上传能力。
安全建议:永远不要使用 API 下发 ak / sk
前端可以对预签名链接直接发起 PUT 请求,这样我们可以收获的好处有:
暴露客户端代码
或 被反编译
而泄露至关重要的 AccessKey 和 SecretKey;Content-Type
和 Content-Length
来防止客户端被破解,从而绕过业务策略的限制通过后端 API 生成用于上传的预签名链接:putObject-presigned-url
让后端程序(golang、python、php、nodejs)调用相应的 SDK 生成一个具有 PutObject 方法效力的「预签名」链接传递给 Web 页面的 Javascript 脚本。
客户端对 putObject-presigned-url 发起 PUT 请求,并完成文件上传
Javascript 脚本利用 网络请求组件(如 axios)来将本地文件 PUT 到上面提到的「预签名 PutObject 链接」
缤纷云开源了全功能预签名 API 本地部署项目。它无状态,可以作为微服务快速结合到当前的系统中。
上面的 Javascript 脚本在发起 Put 请求时将「Content-Type」设置为空值,建议使用缤纷云独有的 MIME 自动检测 功能。