简介
Deno 是一个现代的 JavaScript/TypeScript 运行时环境,提供了更好的性能和安全,同时允许在服务器端和浏览器端运行 JavaScript。Amazon S3 是亚马逊提供的一项云存储服务,可以存储和检索大量数据。本文将介绍如何在 Deno 中使用 Amazon S3。
步骤
1. 安装 AWS SDK for JavaScript
使用 Deno 的标准库的 fetch 函数,可以直接从 Amazon S3 中获取数据,但我们推荐使用官方提供的 AWS SDK for JavaScript。要安装它,可以通过以下方式在 Deno 中引入:
import { S3Client } from "https://deno.land/x/aws_sdk/mod.ts";
2. 配置 AWS 访问密钥
在使用 Amazon S3 之前,需要先创建一个 IAM 用户,并生成一个访问密钥。使用 Access Key ID 和 Secret Access Key,可以通过以下方式在 Deno 中进行身份验证:
const client = new S3Client({ region: "<REGION>", credentials: { accessKeyId: "<ACCESS_KEY_ID>", secretAccessKey: "<SECRET_ACCESS_KEY>", }, });
请注意,这里的 <REGION>
是您的 Amazon S3 存储桶所在的地域。例如,如果您的桶在美国东部(弗吉尼亚州)区域,则 <REGION>
应为 "us-east-1"。
3. 操作 Amazon S3 存储桶
有了身份验证凭证,我们就可以对 Amazon S3 存储桶进行操作了。以下是一些常见的操作:
上传文件
await client.send( new PutObjectCommand({ Bucket: "<BUCKET_NAME>", Key: "<OBJECT_KEY>", Body: <YOUR_DATA>, }), );
在上面的示例中,<BUCKET_NAME>
是存储桶名称,<OBJECT_KEY>
是要上传的文件在存储桶中的唯一标识符,<YOUR_DATA>
是要上传的数据,可以是字符串、二进制数据或流等。
下载文件
const response = await client.send( new GetObjectCommand({ Bucket: "<BUCKET_NAME>", Key: "<OBJECT_KEY>", }), ); const data = await collectStream(response.Body);
在上面的示例中,<BUCKET_NAME>
和 <OBJECT_KEY>
分别是存储桶名称和要下载的文件的标识符。collectStream
函数可以将响应流中的数据收集到一个缓冲区中,从而方便处理。
删除文件
await client.send( new DeleteObjectCommand({ Bucket: "<BUCKET_NAME>", Key: "<OBJECT_KEY>", }), );
在上面的示例中,<BUCKET_NAME>
和 <OBJECT_KEY>
分别是存储桶名称和要删除的文件的标识符。
总结
本文介绍了如何在 Deno 中使用 Amazon S3,包括安装 AWS SDK for JavaScript、配置 AWS 访问密钥以及操作 Amazon S3 存储桶的常见操作。使用 Amazon S3 可以为 Deno 应用程序提供高效、可扩展的存储解决方案。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6450f759980a9b385b9d26fd