优雅地通过gulp上传文件到七牛云

因为想要一个对接七牛云、基于Gulp实现的自动化部署,于是有了这样一个插件。

概述

这个插件fork自“gulp-qn-upload”,该扩展是基于一个七牛云的NodeJS客户端qn实现的。

在测试过程中这个扩展存在一个路径上的Bug,于是我将这个Bug进行了修复,制作了gulp-qiniu-up。

在这个工具的基础上,我利用qn这个客户端的更多功能加入了强制上传。

安装

在NodeJS正确安装后,在项目目录执行

1
npm install gulp-qiniu-up --save-dev

即可安装。

当然你也可以安装到全局:

1
npm install gulp-qiniu-up -g

不过安装到全局是一个不推荐的做法。

如果你是使用npm安装的这个包,那么你后续也可以直接通过npm更新这个包。

如果你并不想用npm,那么你可以直接前往GitHub下载源代码,并直接在你的项目中引用源代码。

使用

代码模板

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
const qn = require('gulp-qiniu-up');

gulp.task('upload', function(){
return gulp.src('Your file')
.pipe(qn({
qiniu: {
accessKey: '',
secretKey: '',
bucket: '',
origin: '',
uploadURL: '',
},
prefix: '',
forceUpload: true
}));
});
1
gulp upload

参数详解

在qiniu这个参数块中,你需要设置如下几个参数:

  • accessKey:七牛密钥设置中生成的密钥
  • secretKey:七牛密钥设置中生成的密钥
  • bucket: 对象存储空间名称(唯一的Bucket标识符)
  • origin: 对象存储空间绑定的域名,格式为http://yourdomain.com
  • uploadURL: 七牛的上传域名,用于对接七牛云。如果你不清楚这个URL是什么,你可以去除这个参数执行一次任务,任务的错误信息会返回该地址。

主参数块内的参数是可选的。

  • prefix:上传文件的前缀,例:myapp/windows/,请注意结尾一定要有“/”
  • forceUpload: 是否对当前任务启动强制上传,如果启用,当对象存储空间内存在同名文件时,本地文件会覆盖云端文件,如果不启用,存在同名文件时该文件会被自动跳过。

相关页面

GitHub: https://github.com/backrunner/gulp-qiniu-up
npm: https://www.npmjs.com/package/gulp-qiniu-up