All Projects → futuweb → cossync

futuweb / cossync

Licence: other
腾讯云COS同步(批量上传)工具

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to cossync

Vault
Easy persistence of Contentful data for Android over SQLite.
Stars: ✭ 80 (+247.83%)
Mutual labels:  sync, storage
Weibo Picture Store
🖼 新浪微博图床 Chrome/Firefox 扩展,支持同步到微相册
Stars: ✭ 624 (+2613.04%)
Mutual labels:  sync, storage
Akubra
Simple solution to keep a independent S3 storages in sync
Stars: ✭ 79 (+243.48%)
Mutual labels:  sync, storage
Cloudexplorer
Cloud Explorer
Stars: ✭ 170 (+639.13%)
Mutual labels:  sync, storage
Remotestorage.js
⬡ JavaScript client library for integrating remoteStorage in apps
Stars: ✭ 2,155 (+9269.57%)
Mutual labels:  sync, storage
gulp-upload-qcloud
腾讯云 cos 静态资源上传 gulp 插件
Stars: ✭ 18 (-21.74%)
Mutual labels:  qcloud, cos
Go Fastdfs
go-fastdfs 是一个简单的分布式文件系统(私有云存储),具有无中心、高性能,高可靠,免维护等优点,支持断点续传,分块上传,小文件合并,自动同步,自动修复。Go-fastdfs is a simple distributed file system (private cloud storage), with no center, high performance, high reliability, maintenance free and other advantages, support breakpoint continuation, block upload, small file merge, automatic synchronization, automatic r…
Stars: ✭ 2,923 (+12608.7%)
Mutual labels:  sync, storage
cos-go-sdk-v5
Tencent cloud object storage service client 5.0 xml version __腾讯cos-go-sdk-v5__
Stars: ✭ 34 (+47.83%)
Mutual labels:  qcloud, cos
talisman
Talisman helps with upgrade and wipe of a Portworx cluster on Kubernetes
Stars: ✭ 13 (-43.48%)
Mutual labels:  storage
MeowDB.js
Database in JSON (Node.JS Library)
Stars: ✭ 12 (-47.83%)
Mutual labels:  storage
stock scan1
Working Demo of Barcode/QR code scanner using VueJs+Quasaar+Cordova
Stars: ✭ 42 (+82.61%)
Mutual labels:  sync
syncTabs
Sync your firefox tabs with Safari on iOS
Stars: ✭ 25 (+8.7%)
Mutual labels:  sync
gcsfs
Google Cloud Storage filesystem for PyFilesystem2
Stars: ✭ 36 (+56.52%)
Mutual labels:  storage
serverless-s3bucket-sync
Serverless Plugin to sync local folders with an S3 bucket
Stars: ✭ 24 (+4.35%)
Mutual labels:  sync
react-native-modest-cache
💾 Simple cache for AsyncStorage
Stars: ✭ 23 (+0%)
Mutual labels:  storage
haro
Haro is a modern immutable DataStore
Stars: ✭ 24 (+4.35%)
Mutual labels:  storage
evernote-backup
Backup & export all Evernote notes and notebooks
Stars: ✭ 104 (+352.17%)
Mutual labels:  sync
phaser-super-storage
A cross platform storage plugin for Phaser
Stars: ✭ 49 (+113.04%)
Mutual labels:  storage
react-native-s3
React Native app to upload and display images from Amazon S3 using AWS Amplify as the back end service.
Stars: ✭ 41 (+78.26%)
Mutual labels:  storage
sasutils
Serial Attached SCSI (SAS) Linux utilities and Python library
Stars: ✭ 36 (+56.52%)
Mutual labels:  storage

腾讯云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

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,
    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.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

  • 基本功能实现
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].