概述
@headforwards-spd/aws-s3
是一个适用于 Node.js 环境的 AWS S3 操作库。它提供了一系列简单易用的接口,使得在 Node.js 环境下快速实现 AWS S3 对象存储的上传、下载、删除等操作成为了可能。
本文将详细介绍 npm 包 @headforwards-spd/aws-s3
的使用教程,包括安装、基本使用方法、相关配置及注意事项等。
安装
使用 npm 可以很方便地进行安装:
npm install @headforwards-spd/aws-s3
安装完成后,即可在 Node.js 代码中引用:
const S3 = require('@headforwards-spd/aws-s3');
基本用法
初始化
使用时,可以通过创建 S3
实例进行初始化,并传入相关配置:
-- -------------------- ---- ------- ----- --- - ------------------- -- --------- ------- ----- -- - ------------------------------------ ----- -- - --- ---- ------------ --------------------- ---------------- ------------------------- ------- ----------------- ------- ----------------- --------- --- --------- -- ------------ -- ----- ---展开代码
其中,accessKeyId
和 secretAccessKey
是 AWS S3 的密钥配置,region
为对象存储所在区域,bucket
为要操作的 S3 存储桶名称,s3Client
是可选参数,是自定义 AWS S3 的客户端实例。
上传文件
上传文件可以通过 S3
实例中的 uploadFile
方法,并传入相关参数实现:
const result = await s3.uploadFile({ filePath: '/path/to/your/local/file', s3Key: 'your/file/key/on/s3', acl: 'public-read', // 可选参数,默认为 private,也可以选择 public-read 等权限 contentType: 'image/png', // 可选参数,根据需求进行设置 }); console.log(result);
其中 filePath
是要上传的文件本地路径,s3Key
是在 AWS S3 中保存的路径,acl
为可选参数,表示访问权限,contentType
为可选参数,表示上传文件的类型。
下载文件
下载文件可以通过 S3
实例中的 downloadFile
方法,并传入相关参数实现:
const result = fs.createWriteStream('/path/to/local/save/file'); await s3.downloadFile({ s3Key: 'your/s3/file/path', responseStream: result, }); console.log(result);
其中 s3Key
是要下载的文件在 AWS S3 中的路径,responseStream
是 Node.js 的可写流。
删除文件
删除文件可以通过 S3
实例中的 deleteFile
方法,并传入相关参数实现:
await s3.deleteFile({ s3Key: 'your/s3/file/path', }); console.log(`file: ${s3Key} has been deleted`);
其中 s3Key
是要删除的文件在 AWS S3 中的路径。
注意事项
为避免 AWS S3 密钥泄漏,您应将访问密钥文件如
~/.aws/credentials
放在一个受保护的环境中,例如您的用户目录。在生产环境中,建议使用 AWS IAM 角色而不是静态密钥;@headforwards-spd/aws-s3
是一个基于 AWS SDK 构建的 S3 操作库,因此需要先安装aws-sdk
包,以通过密钥认证 AWS S3 操作。
结语
本文详细介绍了 @headforwards-spd/aws-s3
的使用教程,包括 npm 包的安装、初始化、上传文件、下载文件和删除文件等基本操作,同时也重点提示了一些开发需要注意的事项。希望这篇文章对于 AWS S3 的 Node.js 开发人员有所帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600572b181e8991b448e8d36