开通服务,创建空间用于文件存储,参考接入指引
点击下面链接下载 Nodejs SDK (含 Demo)
测试Demo位于SDK压缩包的 test
目录下,在 test.js
填入开发者自己的AK、SK和namespace 后,运行(mocha test.js)即可。
var wantu = new WANTU('<user app key>','<user secret key>'); //填入ak,sk var namespace = "<user namespace>"; //填写空间名
如何获取 AK 和 SK?
var wantu = new WANTU(AK,SK);
初始化传入参数:
AK: 开发者的AccessKeyId。
SK: 开发者的AccessKeySecret。
用户 AK/SK 的获取方式请参照第 3 节 Demo 中的描述。
每个方法均有回调函数callback,说明如下:
err : 错误信息 res : { statusCode:请求返回的状态码, 200为成功 ; headers:请求返回头信息 ; data:请求返回数据 ; }
指定需要上传的文件路径,调用上传接口完成文件上传。
建议10M以下的文件采用此种方式。调用示例如下:
singleUpload(uploadPolicy, filePath, dir, meta, _var, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 dir 必填,上传到文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ meta 必填,用户自定义的文件meta信息,没有为"" _var 必填,魔法变量,没有为"" callback 必填,回调
如果开发者想要在代码中调用分片上传接口,控制并了解分片上传的细节,SDK中封装了分片上传相关的方法。建议上传大文件时采用此种方式。注:每块分片大小需大于100KB。
如下所示:
1) 初始化分片上传
multiUploadInit(uploadPolicy, filePath, dir, meta, _var, curChunkSize, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 dir 必填,上传到文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ meta 必填,用户自定义的文件meta信息,没有为"" _var 必填,魔法变量,没有为"" curChunkSize 必填,当前分片大小 callback 必填,回调
2) 分片上传文件
multiUploadBlock(uploadPolicy, filePath, id, uploadId, partNumber, chunkStart, curChunkSize, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 dir 必填,上传到文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ meta 必填,用户自定义的文件meta信息,没有为"" _var 必填,魔法变量,没有为"" chunkSize 必填,分片大小,默认是4MB callback 必填,回调
3) 分片上传完成
multiUploadComplete(uploadPolicy, filePath, id, uploadId, eTags, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 id 必填,上传唯一id,由初始化分片上传返回 uploadId 必填,分片上传Id,由初始化分片上传返回 eTags 必填,每个分片上传后返回的eTag组成的数组 callback 必填,回调
4) 分片上传取消
cancelMultiUpload(uploadPolicy, filePath, id, uploadId, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 id 必填,上传唯一id,由初始化分片上传返回 uploadId 必填,分片上传Id,由初始化分片上传返回 callback 必填,回调
如果开发者想要自动对上传的文件进行分片,则可以使用如下分片上传接口。
multiUpload(uploadPolicy, filePath, dir, meta, _var, chunkSize, callback)
uploadPolicy 必填,上传策略,json格式,具体参见API说明文档 filepath 必填,本地文件路径 dir 必填,上传到文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ meta 必填,用户自定义的文件meta信息,没有为"" _var 必填,魔法变量,没有为"" chunkSize 必填,分片大小,默认是4MB callback 必填,回调
delFile(namespace, dir, file, callback)
namespace 必填,命名空间 dir 必填,文件所在文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ file 必填,文件名称 callback 必填,回调
existFile(namespace, dir, file, callback)
namespace 必填,命名空间 dir 必填,文件所在文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ file 必填,文件名称 callback 必填,回调
getFile(namespace, dir, file, callback)
namespace 必填,命名空间 dir 必填,文件所在文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ file 必填,文件名称 callback 必填,回调
listFiles(namespace, dir, currentPage, pageSize, callback)
namespace 必填,命名空间 dir 必填,文件所在文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ currentPage 必填,当前页码,从1开始 pageSize 必填,当前页内文件个数,最大100 callback 必填,回调
{ totalCount: 总数 totalPage: 页数 result: [ { namespace: “名称空间” name: “文件名” path: “文件全路径” dir: “文件全路径” createStamp: “创建时间” modifyStamp “最后修改时间” md5: “文件md5信息” mineType: “文件元类型” size: “文件大小” url: “文件访问url” }, … ] }
createDir(namespace, dir, callback)
namespace 必填,命名空间 dir 必填,文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ callback 必填,回调
delDir(namespace, dir, callback)
namespace 必填,命名空间 dir 必填,文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ callback 必填,回调
existDir(namespace, dir, callback)
namespace 必填,命名空间 dir 必填,文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ callback 必填,回调
listDirs(namespace, dir, currentPage, pageSize, callback)
namespace 必填,命名空间 dir 必填,文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ currentPage 必填,当前页码,从1开始 pageSize 必填,当前页内文件个数,最大100 callback 必填,回调
{ totalCount: 总数 totalPage: 页数 result: [ { namespace: “名称空间” name: “目录名” path: “目录全路径” createStamp: “创建时间” modifyStamp “最后修改时间” }, … ] }
addPts(namespace, dir, file, fops, notifyURL, force, callback)
namespace 必填,命名空间 dir 必填,文件所在文件夹路径;以’/‘开头,不能以’/‘结尾;根目录为’/’ file 必填,文件名称 fops 必填,持久化操作参数, notifyURL 必填,处理结果通知接收URL force 必填,0为不覆盖转换,1为强制覆盖转换 callback 必填,回调
{persistentId: "任务Id"}
getPts(persistentId, callback)
persistentId 必填,任务id callback 必填,回调
mediaEncode(input, output, watermark, encodeTemplate, watermarkTemplate, usePreset, force, notifyURL, callback)
input: 输入文件,object类型:{namespace:’‘,dir: ’‘,file: ’’},其中namespace: 命名空间,dir: 目录,file: 文件名 output: 输出文件,object类型:{namespace:’‘,dir: ’‘,file: ’’},其中namespace: 命名空间,dir: 目录,file: 文件名 watermark: 水印,object类型:{namespace:’‘,dir: ’‘,file: ’’},其中namespace: 命名空间,dir: 目录,file: 文件名 encodeTemplate: 模板名称, watermarkTemplate:用户自定义水印模板, usePreset:是否使用系统模板 force: 是否强制覆盖输出文件 notifyUrl: 通知url,任务结束之后会调用这个url callback: 回调
{taskId: "任务Id"}
mediaEncodeResult(taskId, callback)
taskId 必填,任务id, callback 必填,回调
scanPorn(files, callback)
files: 需要扫描的文件的数组,[{namespace:’‘,dir:’‘,file:’’},…],其中namespace: 命名空间,dir: 目录,file: 文件名 callback 必填,回调
feedback(feedbacks, callback)
feedbacks: 需要反馈的对象数组: [ { file:{namespace:'',dir:'',name:''}, //其中namespace: 命名空间,dir: 目录,name: 文件名 type:'', //0或者1,0是非黄图,1是黄图 score:'', //[0-1] 黄图分值,越高则黄图嫌疑越高 wrong:'' //true代表用户认为多媒体鉴黄服务的结果有问题,反馈给多媒体云用于提升算法准确率,当为true的时候必须传score。false代表用户提交的,有益于算法提升的样本,为false的时候不需要提交score }, ... ] callback: 必填,回调