在 Web 开发中,存储和管理文件是非常有用的功能。AWS 的 Simple Storage Service (S3) 是一种高度可扩展的对象存储解决方案,而 npm 包 s3 就是一个使用 S3 的 Node.js 模块。在本文中,我们将介绍如何使用 npm 包 s3 来上传和下载文件到 S3 存储桶。
首先,我们需要安装 s3 模块。可以使用 npm 命令进行安装:
npm install s3
安装完成后,我们可以开始使用它了。
配置 s3
在使用 s3 之前,我们需要先进行配置。我们需要提供 AWS 凭证、存储桶名称和存储区域。凭证由 AWS 访问密钥 ID 和秘密访问密钥组成。
我们可以通过创建一个 JavaScript 对象来存储这些配置。对象包含以下字段:
{ "accessKeyId": "AWS访问密钥ID", "secretAccessKey": "AWS秘密访问密钥", "region": "AWS存储区域", "bucket": "存储桶名称" }
例如:
const config = { "accessKeyId": "AKI**********", "secretAccessKey": "Zg***************", "region": "us-east-1", "bucket": "my-bucket" };
上传文件
要上传一个文件到 S3 存储桶,我们首先需要将文件读入内存。我们可以使用 Node.js 的 fs 模块来完成这个任务。以下代码演示了如何将文件读入内存:
const fs = require('fs'); const file = fs.readFileSync('/path/to/file');
接下来,我们可以使用 s3 模块的 upload 方法来上传文件。以下是示例代码:
-- -------------------- ---- ------- ----- --- - ------------------- ----- -- - --- --------------- ----------- ------- -------------- ---- -------------- ----- ----- ---- ------------- -- ----- ----- -- - -- ----- - ------------------- - ---- - ----------------- -------- ---------------- - ---
在此代码中,Bucket 和 Key 字段指定了文件上传到的存储桶和文件名称。Body 字段包含文件内容。ACL 字段指定了文件访问权限。在此示例中,我们将文件设为公开可读。
下载文件
要下载已上传的文件,我们可以使用 s3 模块的 getObject 方法。以下是示例代码:
-- -------------------- ---- ------- -------------- ------- -------------- ---- ------------- -- ----- ----- -- - -- ----- - ------------------- - ---- - ----------------- ---------- ---------------- -------------------------------------- ----------- - ---
在此代码中,Bucket 和 Key 字段指定了要下载的文件所在的存储桶和文件名称。获取的数据将包含在 data.Body 中。我们可以使用 Node.js 的 fs 模块将数据写入文件。
总结
通过此教程,我们学习了如何使用 npm 包 s3 将文件上传和下载到 AWS S3 存储桶。s3 模块具有易于使用的 API,支持多种 S3 操作,例如列出存储桶中的对象和删除对象。此外,S3 还支持版本控制、服务器端加密和事件通知,可用于各种 Web 开发和应用程序场景。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/73190