simple-qiniu-upload

0.2.0 • Public • Published

npm npm npm

simple-qiniu-upload

一个简单的工具,把静态资源发布到七牛的CDN空间。

因为想把vue项目的中的静态资源,通过vue-cli-service的命令发布到七牛的cdn,所以就先做这个工具。核心目标就是把一个文件夹内指定的文件集合,全部上传到七牛特定的某个存储空间,考虑到上传会有出错的情况,所以需要支持覆盖式上传,然后还要考虑对七牛相关的密钥进行保护处理;最后希望上传过程就是一个异步处理过程,在上传完毕时,能够看到一个整体的上传统计结果(成功多少个,失败多少个),以及失败的明细情况。

用法

  • 安装

    npm install simple-qiniu-uploda --save-dev
    
  • 定义一个.qiniu配置文件

    accessKey=
    secretKey=
    

    这个文件用来在本地定义七牛的AK和SK,最好加入到.gitignore,避免这样的信息传递到代码仓库。

  • 编写上传任务

    编写一个upload.js

    const Uploader = require('./src/index')
     
    new Uploader({
        envFile: '.qiniu', //定义ak sk的本地配置文件名
        base: 'dist', // 定义上传的基准目录
        output: 'qiniu-upload.json', // 定义上传结束后导出上传明细的文件名
        glob: 'dist/**', // 定义要上传的文件集,glob格式
        globIgnore: [
            'dist/!(static)/**'
        ], // 定义哪些文件不上传,glob格式
        bucket: 'static', // 定义要上传到的七牛空间名
        overrides: false, // 是否覆盖
        parallelCount: 2, // 并行上传任务数
        zone: Uploader.zone.z0 // 定义七牛的zone,每个空间都属于不同的zone,需要提前指定这个
    }).start()

    然后运行:

    node upload

    最后就会在控制台看到上传的进度和上传的结果:

    [simple-qiniu-upload] config:
    [simple-qiniu-upload]       cwd: D:\code\simple-qiniu-upload
    [simple-qiniu-upload]       envFile: .qiniu
    [simple-qiniu-upload]       base: dist
    [simple-qiniu-upload]       output: qiniu-upload.json
    [simple-qiniu-upload]       bucket: static
    [simple-qiniu-upload]       overrides: false
    [simple-qiniu-upload] total files: 5, uploading:0, success:5, fail:0
    

options

  • accessKey

    • {String}
    • default: ''
    • description: 七牛的AK,推荐在envFile中配置,比较安全。但是在此处指定的AK优先级比envFile中的高,这样当你不想启用envFile的时候有用,比如把AK配置到vue的.env相关环境变量的文件中。
  • secretKey

    • {String}
    • default: ''
    • description: 七牛的SK,推荐在envFile中配置,比较安全。但是在此处指定的SK优先级比envFile中的高,这样当你不想启用envFile的时候有用,比如把SK配置到vue的.env相关环境变量的文件中。
  • cwd

    • {String}
    • default: process.cwd()
    • description: 工作目录。内部一些文件和目录的位置,都是相对这个值去处理的。
  • envFile

    • {String|mixed}
    • default: .qiniu
    • description: 环境变量的配置文件,可用来配置AK和SK。设置为falsy值时,将禁用环境变量配置的特性。
  • glob

    • {String}
    • default: dist/**
    • description: 按照node-glob开发的glob格式的字符串,用来查找待上传的文件列表。默认值是dist/**,因为这个工具目标是给vue用的,所以默认值跟vue关联比较紧密。dist/**表示要上传的文件范围就是dist/目录下的所有文件,包含子孙目录。
  • globIgnore

    • {String|Array}
    • default: [ 'dist/!(static)/**' ]
    • description: 按照node-glob开发的glob格式的字符串,用来排除不想上传的文件。也可以是一个数组,指定多个排除的glob串。建议自行配置。
  • base

    • {String}
    • default: dist
    • description: 上传的基准目录。假如有一个文件dist/static/js/app.js,因为basedist,所以这个文件将会按照static/js/app.js这个形式,作为七牛的key,进行上传。
  • output:

    • {String}
    • default: 'qiniu-upload.json
    • description: 指定上传结束后存储上传明细的导出文件。
  • bucket:

    • {String}
    • default: ''
    • description: 指定七牛的bucket。
  • overrides:

    • {Boolean}
    • default: false
    • description: 指定是否进行覆盖上传。建议保留为false,因为根据七牛对于覆盖上传的说明,同名文件,只要etag相同,如果overrides配置为false,也能上传成功;但是overrides为false时,如果同名文件etag不同,则会导致上传失败,所以overrides对于文件有一定的保护作用。
  • zone:

    • {Uploader.zone}
    • default: Uploader.zone.z0
    • description: 指定七牛的zone。 有z0 z1 z2 na0可选。
  • parallelCount:

    • {Number}
    • default: 2
    • description: 设置并行上传数。

todo

  • 按照前缀进行文件的批量删除

Readme

Keywords

Package Sidebar

Install

npm i simple-qiniu-upload

Weekly Downloads

1

Version

0.2.0

License

MIT

Unpacked Size

18.5 kB

Total Files

13

Last publish

Collaborators

  • liuyunzhuge