如何使用 aws-sdk 在客户端生成 Cloudfront 签名 url?

How to generate Cloudfront signed url on client side using aws-sdk?

我在前端使用 ReactJs,我只是尝试使用 getSignedUrl() 方法通过 AWS.CLOUDFRONT.SIGNER class 生成一个签署了 url 的云端前端,但它说“createSign is未在浏览器中实现。

请告诉我这样做是否正确,我想在我的 React 应用程序中流式传输来自 Aws 的视频,谢谢。

createSign is not implemented in the browser 是正确的。这是一个需要身份验证的操作,因此如果您的凭据(例如您的访问密钥)在您的 Web 应用程序中,那么该密钥将暴露给加载该页面的任何客户端。

您应该创建一个隐藏此密钥的 back-end 服务,然后公开该服务上的端点以创建和 return 已签名的 URL。

看到这个


(client)                      (backend service)                 (aws)
    |   POST /create-signed-url       |                           |
    |===============================>>|                           |
    |                                 | aws-sdk getSignedUrl()    |
    |                                 |=========================>>|
    |                                 |                           |
    |                                 |   new signed url          |
    |                                 |<<=========================|
    |          signed url             |                           |
    |<<===============================|                           |
    |                                 |                           |