npm 包 @aws-sdk/middleware-signing 使用教程

介绍

在云计算领域,AWS(Amazon Web Services)是著名的云服务提供商之一。开发者可以使用 AWS 提供的 AWS SDK 开发应用程序,通过 AWS 服务提供的 API 获取云计算资源。

在前端开发中,我们经常需要使用 AWS SDK 来访问 AWS 服务提供的 API。其中 @aws-sdk/middleware-signing 是一个用来签名 AWS API 请求的 npm 包。本文将介绍如何使用 @aws-sdk/middleware-signing 来签名 AWS API 请求。

签名原理

AWS API 接口需要在请求头中添加 Authorization 字段,用来验证请求是否来自授权的用户。在请求头中添加 Authorization 字段时,需要使用 AWS 所支持的签名算法进行签名。

AWS API 的签名过程如下:

  1. 从请求中提取 HTTP 请求方法(例如 GET、POST、PUT、DELETE 等)、请求路径(例如 /foo/bar)、请求参数、请求报文头部及请求报文主体等信息。
  2. 使用请求信息生成签名所需的字符串 Canonical Request。
  3. 使用 Canonical Request 和 AWS Secret 生成签名所需的字符串 String To Sign。
  4. 使用 String To Sign 和 AWS Secret 生成请求签名 Signature。
  5. 将签名信息添加到 Authorization 字段中。

@aws-sdk/middleware-signing 实现了 AWS 签名算法的生成过程,简化了签名流程。使用 @aws-sdk/middleware-signing,可以方便地向 AWS API 请求中添加签名信息。

安装

使用以下命令安装 @aws-sdk/middleware-signing:

--- ------- ---------------------------

使用步骤

步骤一:创建 AWS SDK 客户端对象

要使用 @aws-sdk/middleware-signing 对 AWS API 请求进行签名,需要首先创建 AWS SDK 客户端对象。AWS SDK 客户端对象用于管理与 AWS 服务的连接,可以为不同 AWS 服务创建不同的客户端对象。

以下示例代码展示了如何创建一个用于连接 AWS S3 服务的 AWS SDK 客户端对象:

-- -- --- --- -- -- --
----- --- - -------------------
------------------------------

-- -- -- -----
----- -------- - --- --------
  ----------- -------------
  ------- ------------
---

步骤二:创建 @aws-sdk/middleware-signing 中间件对象

要使用 @aws-sdk/middleware-signing 对 AWS API 请求进行签名,需要创建一个中间件对象并将其添加到 AWS SDK 客户端对象中。以下示例代码展示了如何创建一个 @aws-sdk/middleware-signing 中间件对象,并将其添加到先前创建的 S3 客户端对象中:

-- -- ---------------------------
----- - ------------- - - ---------------------------------------

-- -------
----- ----------------- - --------------
  --------- ----- -- -
    -- ----------
    ----- - ----------- - - --------
    ------ ----- ------ -- -
      ----- ------ - --- ----------------------- ------
      ----- ------------------------------------ --- --------
      ------ ------
        --------
        -------- -
          ----------------
          -----------------------------
        --
      ---
    --
  --
  - ----- ------------------- -
--

-- --------------
------------------------------------------------

步骤三:发送 AWS API 请求

添加完中间件对象后,可以使用 AWS SDK 客户端对象发送 AWS API 请求。以下示例代码展示了如何使用先前创建的 S3 客户端对象向 S3 存储桶中上传文件:

-- ------ -- --------------
----- -------- - -----------
----- ----------- - ------------
----- ----------- - ----------------------------

-- -- -- --- --
----- ------ - ----- -----------------
  ------- ------------
  ---- ---------
  ----- ------------
  ---- --------------
  ------------ ------------
-------------

---------------------- --------

总结

本文介绍了如何使用 @aws-sdk/middleware-signing 对 AWS API 请求进行签名。通过简单的三步操作,我们可以方便地向 AWS API 请求中添加签名信息。掌握签名技术后,前端开发者可以更方便地使用 AWS 提供的云计算服务。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5f6f23e8a9b7065299ccba50


猜你喜欢

  • npm 包 @aws-sdk/middleware-ssec 使用教程

    前言 AWS(Amazon Web Services)提供了很多强大的服务,如 S3(存储服务),DynamoDB(NoSQL 数据库),Lambda(函数服务)等等。

    4 年前
  • npm 包 @aws-sdk/middleware-user-agent 使用教程

    前言 AWS(Amazon Web Services)是全球最大的云计算平台之一,在做 AWS 开发时,经常需要用到 SDK。然而,AWS SDK 中的不同模块和服务划分有些混乱,特别是在进行跨服务和...

    4 年前
  • npm 包 @aws-sdk/protocol-http 使用教程

    简介 @aws-sdk/protocol-http 是操作 AWS 服务中 HTTP 请求和响应传输的的协议层的一个 npm 包。它可以帮助开发者更方便的使用 AWS 的服务。

    4 年前
  • npm 包 @aws-sdk/smithy-client 使用教程

    前言 在 AWS 官网介绍的 AWS SDK for Javascript 中,提供了很多客户端库,可以满足不同场景的需求。本文介绍 @aws-sdk/smithy-client,这个客户端库提供了一...

    4 年前
  • npm 包 @aws-sdk/stream-collector-browser 的使用教程

    前言 在前端开发中,我们经常需要上传和下载文件,也需要解析和操作文件流。AWS 提供了一个 "@aws-sdk/stream-collector-browser" 的 npm 包,用于在浏览器中收集和...

    4 年前
  • npm 包 @aws-sdk/url-parser-browser 使用教程

    前言 AWS SDK(Amazon Web Services Software Development Kit)是 AWS 提供的一套开发工具包,为开发者提供了 AWS 云服务的 API 和其他功能。

    4 年前
  • npm 包 @aws-sdk/util-base64-browser 使用教程

    前言 在前端开发中,我们经常需要对数据进行编码和解码。其中,Base64 是一种常用的编码方式。Base64 编码可用于在文本中传输二进制数据,而不会导致信息损坏。

    4 年前
  • npm 包 @aws-sdk/util-body-length-browser 使用教程

    在前端开发中,我们经常需要向后端服务发送请求。而 AWS 的服务也是很常用的云服务平台。@aws-sdk/util-body-length-browser 是一个在前端开发中常用的 npm 包。

    4 年前
  • npm 包 @aws-sdk/util-user-agent-browser 使用教程

    AWS SDK 是全球领先的云计算服务提供商 Amazon Web Services (AWS)的官方软件开发工具包。而 npm 包 @aws-sdk/util-user-agent-browser ...

    4 年前
  • npm 包 @types/pixl-xml 使用教程

    在前端开发过程中,我们经常需要使用 XML 数据格式。然而,JavaScript 对于解析和操作 XML 数据的支持并不够完善。因此,我们需要使用第三方库来处理 XML 数据。

    4 年前
  • npm包@aws-sdk/client-s3使用教程

    简介 AWS 是 Amazon 提供的云计算服务,也是目前最大的公共云服务供应商之一。AWS 提供了多个 SDK (软件开发工具包)以帮助开发人员更方便地在其云端平台上构建应用程序。

    4 年前
  • npm 包 @aws-sdk/http-serialization 使用教程

    简介 在前端开发中,调用 AWS 服务已经成为一种常见的需求。由于 AWS 服务具有高度可定制性,使用起来并不是非常简单,开发人员需要一些专门的工具和技能来处理这些服务。

    4 年前
  • npm 包 @aws-sdk/signature-v4 使用教程

    介绍 在前端开发中,有些应用需要与 AWS(Amazon Web Services)进行交互。AWS 提供了一个安全认证的协议,叫做 AWS 签名算法 V4。签名算法 V4 是一种强加密算法,用于验证...

    4 年前
  • npm 包 @aws-sdk/apply-body-checksum-middleware 使用教程

    前言 在进行 AWS 服务的 API 请求时,我们经常需要在请求体中附带一个校验和,用于确保请求体的完整性。AWS SDK for JavaScript 提供了一个中间件,@aws-sdk/apply...

    4 年前
  • npm 包 @aws-sdk/bucket-endpoint-middleware 使用教程

    AWS S3 存储服务是一个强大的云端存储解决方案,但是在访问存储桶(bucket)时,需要传递一个 bucket endpoint。这个 endpoint 可以是一个 URL,也可以是一个 host...

    4 年前
  • npm 包@aws-sdk/config-resolver 使用教程

    在 AWS 开发中,我们经常需要使用 AWS SDK 进行上传、下载、列表等操作,而 AWS SDK 是 AWS 官方提供的一套用于开发 AWS 服务的库,其支持多种语言,其中包括 JavaScrip...

    4 年前
  • NPM 包 @aws-sdk/core-handler 使用教程

    什么是 @aws-sdk/core-handler ? @aws-sdk/core-handler 是 Amazon Web Services (AWS) 官方提供的一种用于生成 AWS SDK 的 ...

    4 年前
  • npm 包 @aws-sdk/credential-provider-env 使用教程

    前言 在开发 AWS 相关服务的应用程序时,认证是其中非常关键的一部分。AWS SDK 提供了多种方式来提供身份验证凭据,如在应用程序中硬编码凭据、使用 AWS IAM 角色和使用 AWS 凭证提供程...

    4 年前
  • npm 包 @aws-sdk/credential-provider-imds 使用教程

    前言 在前端开发中,经常需要使用 AWS(Amazon Web Services)提供的服务,需要在客户端执行 AWS 操作,为了保证安全性,在访问某些 AWS API 时需要进行身份验证。

    4 年前
  • npm 包 @aws-sdk/credential-provider-ini 使用教程

    前言 在使用 AWS SDK 开发项目时,我们需要提供 AWS 认证信息。AWS SDK 为我们提供了许多种获取认证信息的方式,其中之一是使用 AWS CLI 配置 AWS 认证信息。

    4 年前

相关推荐

    暂无文章