该SDK为NodeJs开发者提供使用金山云存储服务的入口,基于金山云存储官方API构建。使用该SDK将数据安全的存储到金山云存储上会变得非常的便捷。
SDK主要包含以下几个方面:
开发前准备:
1、安装:
npm install ks3
或者将代码下载到你本地:
git clone git@github.com:ks3sdk/ks3-nodejs-sdk.git
2、运行:
var KS3 = require('ks3');
// AK = AccessKey; SK = SecretKey
var ks3 = new KS3(AK,SK);
ks3.bucket.put({Bucket: 'mybucket'}, function() {
// 处理逻辑
})
初始化一个KS3实例;
new KS3(AK, SK);
参数:
创建一个新的Bucket 【ks3.bucket.put(params, cb)
】;
参数说明
params: object对象,包含:
private
|| public-read
|| public-read-write
]; 默认为private
cb: 回调函数,创建成功与否都会调用此方法。参见回调函数说明
删除指定的Bucket 【ks3.bucket.del()
】
参数说明
params: object对象,包含:
cb: 回调函数,删除成功与否都会调用此方法。参见回调函数说明
枚举Bucket内的Object 【ks3.bucket.get(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,获取list成功与否都会调用此方法;参见回调函数说明
验证指定的Bucket是否存在 【ks3.bucket.head(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
获取Bucket的ACL(有关ACL请参阅官方文档) 【ks3.bucket.getACL(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
设置Bucket的ACL(有关ACL请参阅官方文档) 【ks3.bucket.puttACL(params, cb)
】
参数说明
params: object对象,包含:
private
|| public-read
|| public-read-write
]
cb: 回调函数,参见回调函数说明
获取Bucket的日志信息 【ks3.bucket.getLogging(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
设置Bucket的日志信息 【ks3.bucket.putLogging(params, cb)
】
参数说明
关闭日志
;当需要开启日志时候需要传入以下对象:
列出用户所有的Bucket信息(名称、创建时间、所有者) 【ks3.service.get(cb)
】
参数说明
删除指定Object 【ks3.objectdel(params, cb)
】
参数说明
params: object对象,包含:
回调函数,删除成功与否都会调用;参见回调函数说明
下载指定object 【ks3.object.get(params, cb)
】
参数说明
params: object对象,包含:
range: 'bytes=x-y'
,x、y为整数,且y>=x
cb: 回调函数,参见回调函数说明
不超过5G的文件上传(同名Object上传,覆盖原有Object) 【ks3.object.put(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
获取指定object的ACL 【ks3.object.getAcl(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
设置object的ACL 【ks3.object.putAcl(params, cb)
】
参数说明
params: object对象,包含:
private
|| public-read
];
cb: 回调函数,参见回调函数说明
获取object的元数据 【ks3.object.head()
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
初始化一个分块上传,接口返回一个upload ID,upload ID与当前分块上传的所有块相关联,在后续的请求已经上传的块、完成分块上传、取消分块上传的时候都会用到次ID。 【ks3.object.multitpart_upload_init(params, cb)
】
参数说明
开始执行分块上传,初始化分块上传之后调用该接口 【ks3.object.upload_part(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
当分块上传完成之后,通过该接口告知服务器上传完成,并通过你提供的xml文件,进行分块组装。在xml文件中,块号必须使用升序排列。必须提供每个块的ETag值 【ks3.object.upload_complete(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
取消分块上传 【ks3.object.upload_abort(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
罗列出分块上传已经上传成功的快 【ks3.object.upload_list_part(params, cb)
】
参数说明
params: object对象,包含:
cb: 回调函数,参见回调函数说明
每次请求成功后都会调用用户传入的回调函数,并传入参数(所有的回调函数都会传入相同的参数):
rerr: 返回错误信息,如果没有错误,则返回null
,如果有错误则返回object对象,包含:
data: 服务端返回后经过处理的数据(会根据配置文件中的数据类型来处理,json || xml
);
本工具主要是满足用户上传
和下载
文件的需求,尤其是大文件情况.在上传和下载过程中都会进行断点续传,节省时间和带宽资源.
安装nodejs
npm install -g ks3@cmd
重置开发者配置,清空历史记录
ks3 reset
主要执行初始化操作.在初始化过程中,可以指定开发者的AK
和SK
.
命令行使用分为两种模式: 直接指定,或者进入交互模式.在交互模式
下,会指导你填写必须的参数.如果所需参数没有提供完全,也会进入交互模式
.
ks3 init -a [ak] -s [sk] -b [bucket]
-a --ak
: 开发者的AK(Access Key)
-s --sk
: 开发者AK对应的SK(Access Key Secret)
-b --bucket
: 开发要使用哪个Bucket,非必须,可以在每个具体命令中指定
-r --region
: Bucket所在Region,非必须,可在每个具体命令中指定,有效值为:BEIJING|SHANGHAI|HONGKONG|AMERICA
也可以直接输入ks3 init
进入交互模式
上传文件以及文件夹.程序会根据文件大小进行简单上传
和分块上传
.
ks3 upload -p [path] -b [bucket] -k [key] --withsubdir
-p --path
: 开发者制定要上传文件夹或者文件的地址
-b --bucket
: 指定上传文件存储的bucket
-k --key
: 如果上传的path为文件,则为文件名,如果上传的path是文件夹,则为文件夹名称
--withsubdir
: 在上传文件夹的过程中,是否上传子文件夹,默认不上传,加上本参数,上传子文件夹内容
-r --region
: Bucket所在Region,有效值为:BEIJING|HONGKONG|AMERICA|SHANGHAI
例如:
把/Users/ren/Desktop/Life\ Of\ Johnson.txt
传递到 ks3-sdk-test
bucket根目录下
ks3 upload /Users/ren/Desktop/Life\ Of\ Johnson.txt
// 或者
ks3 upload "/Users/ren/Desktop/Life Of Johnson.txt"
// 然后进入交互模式 填写bucket,key和region
// 也可以直接传递参数
ks3 upload "/Users/ren/Desktop/Life Of Johnson.txt" -b ks3-sdk-test -k "Life Of Johnson.txt" -r BEIJING
说明:不指定region则默认为北京region
把 D:\Program Files (x86)\Foxmail
整个文件夹(包括子文件夹)上传,如下:
ks3 upload -p "D:\Program Files (x86)\Foxmail" --withsubdir
// 进入交互模式 填写bucket和key
也可以直接输入ks3 upload
进入交互模式
下载金山云存储的文件,可以进行断点续传.现在暂时只能下载文件,不能下载文件夹
ks3 download -b $bucket -k $key -p $localpath
-b --bucket
: 指定下载文件所在的bucket
-k --key
: 指定下载文件对应的key,注意,key不包含bucket名称
-p --path
: 下载文件的本地存储地址
-r --region
: Bucket所在Region,有效值为:BEIJING|HONGKONG|AMERICA|SHANGHAI
例如:
把ks3-sdk-test
bucket下的 test_download.txt
下载到本地 D盘
根目录下,并且重命名为test.txt
ks3 download -k test_download.txt -p d:\test.txt
// 由于没有输入bucket名称,会进入交互模式,让你输入bucket名称
// 或者直接指定bucket名称
ks3 download -b ks3-sdk-test -k test_download.txt -p d:\test.txt -r BEIJING
说明:不指定region则默认为北京region
如何获取自己的AK
和SK
?
访问 官方文档-权限管理
什么是分块上传
?
简单说就是把大文件拆成小文件上传,并且全部传完以后再合并生成大文件.避免大文件在上传过程中出意外,必须从头开始上传的问题.查看官方文档-分块上传
更多详细信息,请参阅官方文档