npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

cossync

v1.7.0

Published

sync files with qcloud COS (cloud storage)

Downloads

46

Readme

腾讯云COS (V3,V5 BUCKET)文件夹同步(批量上传)工具

支持V3,V5版本的bucket。

腾讯云文档: https://cloud.tencent.com/document/product/436/12264

安装

cmd:

npm install -g cossync

require:

npm install --save cossync

CLI配置

准备一个配置文件,例如conf.json

// V3 BUCKET
{
    "appId":"100012345",
    "secretId":"ABCDABCDABCDABCDABCDABCD",
    "secretKey":"abcdabcdabcd",
    "expired":1800,
    "bucket":"bucketName",
    "remotePath":"/test/",
    "localPath":"./",
    "maxAge":31536000,
    "strict":true ,
    "timeout":30,
    "mime":{
        "default": true,
        ".test": "text/plain"
    }
}

//v5 bucket
{
    "secretId":"SGFDDGHFGFHHSEREWTRETRETER",
    "secretKey":"FGHGFHGFHGFHAASRETRET",
    "bucket":"testname-12500000",
    "strict":true,
    "version":"v5",
    "region":"na-ashburn",
    "remotePath":"/test/",
    "localPath": "./test",
    "maxAge":31536000, //cache-control
    "expires": 300, //content -expries
    "timeout": 120000, // 单个文件上传超时时间,单位为ms
    "mime":{  //content-type
        "default": true,
        ".test": "text/plain"
    },
    "globConfig":{
      "ignore":["node_modules/**"],
      "nodir":true
    }
}

V3 BUCKET配置项说明:

  • bucket COS bucket名称
  • expired 密钥有效期,单位s
  • strict 单个文件出错是否停止上传,默认值true
  • localPath 为本地要同步的文件的根目录。localPath中的内容将被一一同步到remotePath
  • remotePath 腾讯COS存储根目录,以/开头和结尾 。例如:/test/。目前只支持一级
  • maxAge 设置cache-control头为指定的max-age
  • mime 中的default表示是否让cossync模块根据后缀名解析MIME(使用mime模块),其它键值表示需要自定义MIME
  • timeout 连接超时时间,单位s

V5 BUCKET 特殊配置项说明:

  • bucket 格式为 {bucket}-{appid}
  • version 指定使用的cos版本。 目前只有: v3v5
  • region 表示bucket的所属地域。
  • globConfig 参考node-glob 。 主要用于配置筛选上传文件。
  • timeout 连接超时时间,单位ms,默认为120000ms

CLI使用

如果没有指定使用的配置文件,将在proccess.cwd()目录下寻找cossyncconf.json文件。

cossync conf.json

V5 模块API

Cossync(options)

构建函数,返回Cossync实例。

参数:

  • options参数对象
    • secretId COS secretId
    • secretKey COS secretKey
    • bucket COS {bucket}-{appid}
    • strict 单个文件出错是否停止上传,默认值true
    • remotePath 腾讯COS存储根目录,以/开头和结尾 。例如:/test/。目前只支持一级
    • progress 上传进度回调函数
    • timeout 单个文件超时时间,默认值120000ms
    • skipWhenExist 默认值为false则上传所有文件,值为true则跳过已上传的文件

progress(data)参数:

  • data.success 成功文件个数
  • data.fail 失败文件个数
  • data.total 总文件个数
  • data.successList 成功列表
  • data.failList 失败列表

Cossync#sync(localPath [,globConfig [,callback]])

实例方法,收集上传文件并上传文件接口。

Cossync#upload(localPath , files)

上传文件接口。

V5 bucket 案例

var cossync = require('cossync').cossync;

var conf = {
    secretId:'DGFDFGDFGDFGDF',
    secretKey:'DFGDFGDFGDFGDFGDFDFGDFG',
    bucket:'ertretretr-12500000',
    strict:true,
    skipWhenExist:true,
    version:'v5',
    region:'na-ashburn',
    remotePath:'/test/',
    localPath: '/data',
    timeout: 120000, // 单个文件上传超时时间,单位毫秒,默认为2分钟
    maxAge:31536000, //cache-control
    expires: 300, //content -expries
    mime:{  //content-type
        default: true,
        ".test": "text/plain"
    },
    globConfig:{
      ignore:["node_modules/**"],
      nodir:true
    }
};

var cos = cossync(conf);

cos.sync(conf.localPath , conf.globConfig , function(err , result){
  console.log(err , result);
});

返回:

{total: files.length || 0 , success:0 , fail:0 , successList:[] , failList:[]};

V3 模块API

Cossync(options)

构建函数,返回Cossync实例。

参数:

  • options参数对象
    • appId COS AppId
    • secretId COS secretId
    • secretKey COS secretKey
    • expired 密钥有效期,单位s
    • bucket COS bucket名称
    • maxAge 设置cache-control头为指定的max-age
    • timeout 连接超时时间,单位s
    • strict 单个文件出错是否停止上传,默认值true
    • remotePath 腾讯COS存储根目录,以/开头和结尾 。例如:/test/。目前只支持一级
    • progress 上传进度回调函数
    • timeout 单个文件超时时间,单位毫秒,默认为120000ms(2分钟)

progress(data)参数:

  • data.success 成功文件个数
  • data.fail 失败文件个数
  • data.total 总文件个数

Cossync#sync(localPath [,mimeConf [,maxAge[,callback]]])

实例方法,上传文件接口。

  • localPath <String> 本地上传的文件目录 必须存在
  • mimeConf <Object> 后缀名,见CLI配置项解释 可选
  • maxAge <Number> 缓存有效期 可选
  • callback <Function> 上传结束回调函数 可选

callback(err, result),如果上传失败result参数为空,errError实例;成功,err === undefinedresult参数会返回相应的上传状态。

result参数如下:

{
    code: 0,
    files:
    [ 'demo_001.html',
      'demo_002.html',
      'demo_003.html'
    ],
    localPath: 'E:/source/2016_11/4/demo/',
    remotePath: '/test/',
    bucket: 'bug',
    count: {
        total: 3,
        success: 3,
        fail: 0
    }
}

V3 bucket 案例

var cossync = require('cossync').cossync;

var conf = {
    "appId":"100012345",
    "secretId":"ABCDABCDABCDABCDABCDABCD",
    "secretKey":"abcdabcdabcd",
    "expired":1800,
    "bucket":"bucketName",
    "remotePath":"/test/",
    "localPath":"./",
    "maxAge":31536000,
    "strict":true ,
    "timeout":30,
    "mime":{
        "default": true,
        ".test": "text/plain"
    }
}

var cos = cossync(conf);

cos.sync(conf.localPath conf.mime, conf.maxAge || conf.cacheMaxAge || 0, function(err , result){
    console.log(err , result);
});

Cossync.setBrowserLog(false|true)

静态方法,浏览器环境中(如electron)是否开户浏览器日志输出。默认关闭。

历史

1.7.0 2024-07-24

  • v5支持UseAccelerate参数,控制是否支持开启加速域名,默认为false则不开启,true则开启加速域名

1.6.0 2024-05-11

  • v5支持skipWhenExist参数,默认值为false则上传所有文件,值为true则跳过已上传的文件。

1.5.3 2023-08-08

  • 修复V5上传文件名含中文失败的问题

1.5.2 2021-01-04

  • 去除调试日志

1.5.1 2020-05-20

  • 修复v5版本log出的速度为NaN的问题,上传数据精确到KB/s

1.5.0 2020-02-27

  • V5 bucket支持timeout参数,默认为120000ms

1.4.3 2019-12-03

  • 上传失败时抛出详细异常

1.4.0 2018-08-15

  • 支持V5 bucket
  • 兼容旧版v3 bucket
  • 修改引入方式

1.3.1 2017-03-27

  • 优化callback回调
  • 修改=>箭头函数为function

1.3.0 2017-01-16

  • 增加上传进度
  • 增加连接超时设置
  • 增加单个文件报错是否停止上传
  • 兼容浏览器日志打印,完善日志打印

1.2.0 2016-11-08

  • 增加出错时3次重试
  • 出错时退出返回码改为1

1.1.0 2016-09-07

  • root变更为remotePath
  • 增加localPath选项设置本地目录
  • 增加缓存头控制选项cacheMaxAge
  • 增加MIME配置项mime
  • 规整控制台输出

1.0.1 2016-09-04

  • 修复命令行无法使用的问题

1.0.0 2016-09-04

  • 基本功能实现