介绍
AWS SDK for JavaScript 是操作 Amazon Web Services的官方 JavaScript SDK。@aws-sdk/s3-request-presigner 是 AWS SDK for JavaScript 的一个 npm 包,可以用于生成 Amazon S3 的 pre-signed URLs。pre-signed URL 是一种带有签署者的 URL,用于将对 Amazon S3 对象的特定操作授权给某个 AWS 账户。AWS 签署 pre-signed URL 时,可以使用应用程序开发者提供的安全策略来确定请求范围和时间期限。
在本篇文章中,我们将介绍如何使用 @aws-sdk/s3-request-presigner 包,生成 pre-signed URL。
安装
在使用 @aws-sdk/s3-request-presigner 之前,需要先安装 Node.js 和 npm。安装好 Node.js 和 npm 后,可以使用以下命令安装 @aws-sdk/s3-request-presigner 包:
npm install @aws-sdk/s3-request-presigner
使用
@aws-sdk/s3-request-presigner 提供了两个方法,可以用于生成 pre-signed URL:prepareRequest 和 presignRequest。prepareRequest 方法用于构建 HTTP 请求,presignRequest 方法用于生成 pre-signed URL。下面我们将分别介绍这两个方法的使用。
prepareRequest
prepareRequest 方法用于构建 HTTP 请求。下面是一个使用 prepareRequest 方法的示例:
-- -------------------- ---- ------- ----- - ------------------ - - ----------------------------------------- ----- - ----------- - - ---------------------------------- ----- - -------- - - ------------------------------ ----- --------- - --- -------------------- ------- ------------ ------------ - ------------ -------------- ---------------- ------------------- -- --- ----- ------- - --- ------------- ------- ------ --------- --------- --------- -------------------------------------------- ----- ------------------ --- ----- ------ - --- ---------- ------- ------------ ------------ - ------------ -------------- ---------------- ------------------- -- --- ----- --------------- - --------------------------------- ---------------
在上述示例中,我们首先创建了一个 S3RequestPresigner 实例。然后创建了一个包含 HTTP 请求信息的 HttpRequest 对象。接着创建了一个 S3Client 对象,然后使用 S3RequestPresigner 的 prepareRequest 方法,对 HttpRequest 对象进行签署。最后,我们得到了签署后的 HTTP 请求的信息,存储在 preparedRequest 变量中。
presignRequest
presignRequest 方法用于生成 pre-signed URL。下面是一个使用 presignRequest 方法的示例:
-- -------------------- ---- ------- ----- - ------------------ - - ----------------------------------------- ----- - ----------- - - ---------------------------------- ----- - -------- - - ------------------------------ ----- --------- - --- -------------------- ------- ------------ ------------ - ------------ -------------- ---------------- ------------------- -- --- ----- ------- - --- ------------- ------- ------ --------- --------- --------- -------------------------------------------- ----- ------------------ --- ----- ------ - --- ---------- ------- ------------ ------------ - ------------ -------------- ---------------- ------------------- -- --- ----- --------------- - --------------------------------- --------------- ----- ------------ - ----------------------------------------- - ---------- --- --- --------------------------
在上述示例中,我们首先创建了一个 S3RequestPresigner 实例。然后创建了一个包含 HTTP 请求信息的 HttpRequest 对象。接着创建了一个 S3Client 对象,然后使用 S3RequestPresigner 的 prepareRequest 方法,对 HttpRequest 对象进行签署。然后使用 presignRequest 方法,传入签署后的 HTTP 请求信息,指定 URL 的有效期时长,生成 pre-signed URL。
总结
通过本文的介绍,我们了解了如何使用 @aws-sdk/s3-request-presigner 包生成 Amazon S3 的 pre-signed URLs。在实际应用中,我们可以使用 pre-signed URL 来授权给某个 AWS 账户特定的 S3 对象操作,例如下载或上传文件。
完整的示例代码可在GitHub 上找到。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6ee49da9b7065299ccba0d