简介
Knoxy 是一个基于 Node.js 的 HTTP 客户端,它的目的是在请求时使用基于 S3 等云存储服务的签名来实现将请求转发到 Amazon S3 等云存储服务的能力,以实现安全、高性能的文件上传和下载等操作。
安装
通过 npm 安装 Knoxy:
npm install knoxy
使用
初始化
首先通过如下代码初始化一个 Knoxy 实例:
const knoxy = require('knoxy'); const client = knoxy.createClient({ key: 'AWS_ACCESS_KEY', secret: 'AWS_SECRET_KEY', bucket: 'BUCKET_NAME', region: 'aws-region', });
其中:
AWS_ACCESS_KEY
和AWS_SECRET_KEY
分别是 AWS 的身份验证信息;BUCKET_NAME
是存储桶的名称;aws-region
是存储桶所属的 AWS 区域。
简单示例
假设我们有一个名为 example.jpg
的文件需要上传到存储桶中,那么我们可以通过以下代码实现:
-- -------------------- ---- ------- ----- -- - -------------- ----- ---- - ------------------------------------- ----- ------- - - --------------- ------------- ----------------- ----- ------------ -------------- -- ----- --- - -------------------------- --------- --------------- ------------------ --- -- - ---------------------------- ------------------------- --------------------- ----------------- -------- -- ----- ---
简要说明:
- 首先,我们创建一个可读流,将本地文件读取成数据流。
- 接下来,我们定义了请求头的内容,包括了上传内容的类型(这里为 jpeg 图片)、长度(这里假设为 1234)、以及在存储桶中的访问权限(这里为公开访问)。
- 然后,我们创建一个 put 请求,也就是将
file
上传到存储桶中,并指定了文件在存储桶中的路径/example.jpg
,以及上传时定义的请求头信息headers
。 - 最后,我们使用可读流的
pipe()
方法将数据流的内容通过请求发送到存储桶中。 - 在请求的响应事件中,我们打印出响应的状态码、响应头、请求 URL,并且提示文件成功地上传到云存储中。
更多示例
Knoxy 支持更多的 API,比如可以获取对象(Object)和资源(Bucket)的元数据、列举存储桶中的文件列表、删除文件等等,这里只罗列一下常用的 API,示例代码如下:
获取对象元数据
client.head('/example.jpg', (error, response) => { if (error) { console.log(error); } else { console.log(response.headers); } });
获取资源元数据
client.head('/', (error, response) => { if (error) { console.log(error); } else { console.log(response.headers); } });
列举文件列表
client.list('/', (error, data) => { if (error) { console.log(error); } else { console.log(data); } });
删除文件
client.del('/example.jpg', (error) => { if (error) { console.log(error); } else { console.log('File deleted from S3'); } });
总结
本文简单介绍了 Knoxy 的安装、初始化以及其他常用 API 的使用方式,并且给出了具体的代码示例。对于想要在 Node.js 应用中使用 AWS 存储服务的开发者来说,Knoxy 是一个非常不错的选择,而且使用方式也非常简单,不妨试一试。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f1d5eb0403f2923b035c57b