AWS-SDK v3 - 使用 Typescript 下载文件

typescript

1个回答

写回答

梦爷

2025-07-09 16:55

+ 关注

typescript
typescript

AWS-SDK v3 - 使用 typescript 下载文件

AWS-SDK v3 是亚马逊 Web 服务 (Amazon Web Services, AWS) 官方提供的软件开发工具包,用于帮助开发人员在自己的应用程序中集成 AWS 服务。它提供了许多用于与 AWS 服务进行交互的 API,包括上传和下载文件的功能。本文将介绍如何使用 typescript 和 AWS-SDK v3 下载文件,并提供了相关的案例代码。

准备工作

在开始之前,您需要进行以下准备工作:

1. 安装 Node.JS:您可以从官方网站 JS.org/en/">https://nodeJS.org/en/ 下载并安装适合您操作系统的 Node.JS 版本。

2. 创建 AWS 账号并配置访问密钥:在 AWS 官方网站 https://aws.amazon.com/ 上创建一个账号,并获取访问密钥。您可以在 AWS 管理控制台的 "我的安全凭证" 页面中找到访问密钥。

3. 安装 AWS-SDK v3:在项目目录中打开终端或命令提示符,并运行以下命令来安装 AWS-SDK v3:

bash

npm install aws-sdk

下载文件

现在,让我们来看一个使用 typescript 和 AWS-SDK v3 下载文件的案例。假设您已经安装了 AWS-SDK v3,并且已经配置了正确的访问密钥。

typescript

import { S3Client, GetObjectCommand } from "@aws-sdk/client-s3";

import { Readable } from "stream";

const s3Client = new S3Client({ region: "your-region" }); // 替换为您的区域

const downloadFile = async (bucket: string, key: string) => {

const getObjectCommand = new GetObjectCommand({

Bucket: bucket,

Key: key,

});

const response = awAIt s3Client.send(getObjectCommand);

if (response.Body instanceof Readable) {

// 通过流读取文件内容

response.Body.pipe(fs.createWriteStream("downloaded-file.txt"));

} else {

// 处理非流式响应

console.log(response.Body.toString());

}

};

downloadFile("your-bucket", "your-file-key"); // 替换为您的存储桶和文件键

代码解析

1. 首先,我们导入了 S3ClientGetObjectCommand 类,它们分别用于创建 S3 客户端和获取对象的命令。

2. 然后,我们创建了一个 S3 客户端实例,并传入适当的区域参数。

3. downloadFile 函数接受存储桶名称和文件键作为参数,并使用 GetObjectCommand 创建了一个获取对象的命令。

4. 接下来,我们使用 s3Client.send 方法发送该命令,并等待响应。

5. 如果响应的 Body 是一个 Readable 流,则我们可以通过流的方式读取文件内容,并将其保存到本地文件中。

6. 如果响应的 Body 不是一个流,则我们可以将其转换为字符串,并进行相应的处理。

7. 最后,我们调用 downloadFile 函数,并传入正确的存储桶名称和文件键。

本文介绍了如何使用 typescript 和 AWS-SDK v3 下载文件的方法,并提供了相应的案例代码。您可以根据自己的需求进行适当的调整和扩展。希望本文对您有所帮助!

举报有用(4分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号