npm 包 @aws-sdk/chunked-blob-reader 使用教程

简介

@aws-sdk/chunked-blob-reader 是一个 npm 包,它为在浏览器上读取 AWS S3 对象提供了一种流式、分块、内存友好的方法。本文将介绍如何使用 @aws-sdk/chunked-blob-reader 包,包括安装和使用。

安装

使用 NPM 安装 @aws-sdk/chunked-blob-reader

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

使用

在前端页面引入

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

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

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

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

在 NodeJS 上使用

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

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

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

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

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

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

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

深入理解

@aws-sdk/chunked-blob-reader 为 AWS S3 的对象读取提供了一种 chunked-reading 的方式。它的设计目的是为分块的数据提供一种快速、流式、内存优化的读取方式,同时保留较低的读写负载和 CPU 开销。

当使用流的方式读取一个文件时,我们通常会将它分割成一个个的 chunks 交替进行写入和读出操作。在单个请求返回的大型数据中,可以通信少量的 chunk 来获取数据,然后按需自助加载内存,从而避免内存泄漏和内存超限的风险。

🔍 分块是意味着什么?

许多 AWS S3 对象是巨大的,它们无法一次加载到内存中。这意味着必须将数据拆分成较小部分,以便在不超过系统内存限制的情况下进行处理。将对象分成 chunks 并按 demand 加载它们可以解决这个问题。

@aws-sdk/chunked-blob-reader 充分利用了分块技术,将分块效果最大化。它只会下载有需要的 chunks,且仅下载一次,直到我们需要的 chunk 被下载为止。这种模式在处理大型文件时特别有用,因为可以降低对服务器和客户机的压力,使读取文件的方式更加有效率。

🔍 Chunk 是带有什么信息的?

  • Limit:chunk 的最大大小
  • ReadableStream:chunk 的内容流
  • Headers:该 chunk 的元数据

函数

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

示例代码

读取 S3 对象

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

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

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

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

从 S3 下载文件

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

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

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

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

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

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

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

总结

在本文中,我们介绍了 npm 包 @aws-sdk/chunked-blob-reader 的使用教程,并深入讲解了该包的背后设计理念、chunk 单位概念,以及如何在浏览器和 NodeJS 上使用这个包。通过对本文的学习,读者可以了解到如何正确地读取 AWS S3 对象,并避免内存泄漏和内存超限的风险。

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


猜你喜欢

  • npm 包 @aws-sdk/hash-blob-browser 使用教程

    在前端的开发过程中,有时我们需要对文件的内容进行 hash 计算,例如为了防止重复上传,需要对文件内容进行比较。本文介绍了一个可用于浏览器端的 npm 包 @aws-sdk/hash-blob-bro...

    4 年前
  • npm 包 @aws-sdk/invalid-dependency 使用教程

    简介 在前端开发过程中,我们经常会使用到 AWS 的服务。而在使用 AWS SDK 连接 AWS 服务时,可能会遇到一些 invalid-dependency 错误。

    4 年前
  • npm 包 @aws-sdk/is-node 使用教程

    简介 Amazon Web Services(AWS)是目前世界规模最大的云计算平台之一。AWS 提供了多种不同的服务,其中包括 AWS SDK for JavaScript,这是与 AWS 云服务进...

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

    前言 AWS SDK for JavaScript是一个广泛使用的 JavaScript 文件库,它支持浏览器和node.js环境中的Amazon Web Services(AWS)服务。

    4 年前
  • npm 包 @aws-sdk/md5-js 使用教程

    在前端开发中,处理字符串的需求很常见。在实现一些加密算法时,常常需要用到 MD5 算法。而在 JavaScript 中,我们可以通过 npm 包 @aws-sdk/md5-js 来使用 MD5 算法。

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

    AWS(Amazon Web Service)是目前全球最大的云计算服务提供商之一,其提供了多种开发者工具和服务,以便在 AWS 平台上构建高效、可扩展和安全的应用程序。

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

    前言 AWS(Amazon Web Services)是目前全球领先的云计算服务提供商,云存储服务S3(Simple Storage Service)是其最为重要的产品之一。

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

    随着云计算的发展,Amazon Web Services (AWS) 的使用率也越来越高。AWS 提供了丰富的服务以及各类客户端库,其中 @aws-sdk/middleware-host-header...

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

    简介 @aws-sdk/middleware-location-constraint 是一个用于 AWS SDK 的中间件,它可以自动维护 S3 存储桶的位置限制,确保您的数据存储在您选择的地理位置。

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

    前言 在开发前端应用程序时,可能会频繁地与后端服务进行交互,其中必不可少的就是调用 AWS 服务。然而,由于网络问题等原因,API 调用时可能会出现失败,这时候就需要对 AWS SDK 进行重试。

    4 年前
  • NPM包@aws-sdk/middleware-sdk-s3使用教程

    AWS提供了许多API和服务,包括S3服务(Amazon Simple Storage Service)。@aws-sdk/middleware-sdk-s3是一个npm包,为AWS SDK的S3客户...

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

    介绍 在 AWS SDK for JavaScript 中,@aws-sdk/middleware-serde 是一款用于序列化和反序列化 JavaScript 对象和 AWS 数据格式(如 JSON...

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

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

    4 年前
  • 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 年前

相关推荐

    暂无文章