前言
在 Web 应用中,我们常常需要使用云存储服务来存储和管理用户的数据,一个常用的云存储服务提供商是七牛云存储。为方便使用七牛云存储,Node.js 社区中出现了一些基于七牛 API 封装的 npm 包,如 node-qiniu 和 qiniu。
在 Egg.js 中使用七牛云存储,我们可以使用 egg-qiniu-plus npm 包,该包是基于 qiniu npm 包进行的二次封装,支持在 Egg.js 中使用七牛云存储服务。本文将介绍如何使用 egg-qiniu-plus npm 包。
egg-qiniu-plus 的安装
在项目的根目录下,使用 npm 进行安装:
npm install egg-qiniu-plus --save
安装完成后,在项目目录中会生成 node_modules 目录,其中包含 egg-qiniu-plus 及其依赖的 npm 包。
egg-qiniu-plus 的使用
配置
在 Egg.js 项目的 config 目录中创建一个 qiniu.js 文件,并添加如下配置:
module.exports = { enable: true, package: 'egg-qiniu-plus', };
这样就启用了 egg-qiniu-plus 包的 plugin。
同时,在 Egg.js 项目的 config 目录中创建 config.default.js 文件,并添加如下配置:
exports.qiniu = { accessKey: '七牛 Access Key', secretKey: '七牛 Secret Key', bucket: '存储空间名', origin: '访问域名', };
在配置中,我们需要指定七牛的 Access Key、Secret Key、存储空间名和访问域名。
API
egg-qiniu-plus 封装了七牛 API 的上传、删除和获取文件信息等操作,我们可以在 Egg.js 的 Service 层中直接使用这些 API。
上传文件
在 Service 层中添加如下代码:
const qiniuUploader = this.app.qiniu.upload(); const result = await qiniuUploader.upload(filepath, fileName);
其中,this.app.qiniu.upload()
获取了 egg-qiniu-plus 的上传 API,filepath
是待上传的文件路径,fileName
是上传文件保存在七牛中的文件名。
上传成功后返回的 result
中包含了文件在七牛中的相对路径和绝对地址等信息。
删除文件
在 Service 层中添加如下代码:
const qiniuUploader = this.app.qiniu.upload(); await qiniuUploader.delete(filePath);
其中,this.app.qiniu.upload()
获取了 egg-qiniu-plus 的上传 API,filePath
是待删除的文件在七牛中的路径。
获取文件信息
在 Service 层中添加如下代码:
const qiniuApi = this.app.qiniu.api(); const fileInfo = await qiniuApi.stat(filePath);
其中,this.app.qiniu.api()
获取了 egg-qiniu-plus 的 API,filePath
是待查询的文件在七牛中的路径。
获取文件信息成功后返回的 fileInfo
中包含了文件的大小、上传时间和 MD5 等信息。
示例代码
下面是一个完整的示例代码:
-- -------------------- ---- ------- -- - ------- -- ----- ----------------------- --------- - ----- ------------- - ------------------------ ----- ------ - ----- ------------------------------ ---------- ------ ------- - ----- ------------------------- - ----- ------------- - ------------------------ ----- ------------------------------- - ----- ------------------------------ - ----- -------- - --------------------- ----- -------- - ----- ------------------------ ------ --------- -
总结
在 Egg.js 中使用七牛云存储服务,egg-qiniu-plus 是一个方便、易用的选择,通过本文介绍,我们可以学会 egg-qiniu-plus 的安装和使用,并在 Service 层中上传、删除和查询文件等操作。同时,本文也介绍了 egg-qiniu-plus 的配置,供读者们参考和扩展。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/600559e981e8991b448d7911