信息配置html
const qiniu = require('qiniu')
// 须要填写你的 Access Key 和 Secret Key var accessKey = '' var secretKey = '' var mac = new qiniu.auth.digest.Mac(accessKey, secretKey) // 要上传的空间 var bucket = 'image' var options = { scope: bucket, callbackBody: '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}', callbackBodyType: 'application/json' } var putPolicy = new qiniu.rs.PutPolicy(options) var uploadToken = putPolicy.uploadToken(mac) var config = new qiniu.conf.Config() // 是否使用https域名 // config.useHttpsDomain = true // 上传是否使用cdn加速 // config.useCdnDomain = true ** *在这里添加下面的方法 *
文件路径formUploader.putFile方法node
var localFile = "/Users/jemy/Documents/qiniu.mp4"; var formUploader = new qiniu.form_up.FormUploader(config); var putExtra = new qiniu.form_up.PutExtra(); var key='test.mp4'; // 文件上传 formUploader.putFile(uploadToken, key, localFile, putExtra, function(respErr, respBody, respInfo) { if (respErr) { throw respErr; } if (respInfo.statusCode == 200) { console.log(respBody); } else { console.log(respInfo.statusCode); console.log(respBody); } });
文件字节方法formUploader.putjson
** 该方法七牛不支持 buffer类,可以使用Buffer.toString()进行转换api
var formUploader = new qiniu.form_up.FormUploader(config); var putExtra = new qiniu.form_up.PutExtra(); var key='test.txt'; formUploader.put(uploadToken, key, "hello world", putExtra, function(respErr, respBody, respInfo) { if (respErr) { throw respErr; } if (respInfo.statusCode == 200) { console.log(respBody); } else { console.log(respInfo.statusCode); console.log(respBody); } });
可读流上传方式formUploader.putStreamapp
** 最易想到的就是fs.createReadStream 建立可读流对象,http类,以及child进程输出,输入流、更多了解查阅nodejs stream类ui
var formUploader = new qiniu.form_up.FormUploader(config); var putExtra = new qiniu.form_up.PutExtra(); var readableStream = xxx; // 可读的流 formUploader.putStream(uploadToken, key, readableStream, putExtra, function(respErr, respBody, respInfo) { if (respErr) { throw respErr; } if (respInfo.statusCode == 200) { console.log(respBody); } else { console.log(respInfo.statusCode); console.log(respBody); } });
断点续传resumeUploader.putFile调用一个新的resumeUploader.putStream对象spa
var localFile = "/Users/jemy/Documents/qiniu.mp4"; var resumeUploader = new qiniu.resume_up.ResumeUploader(config); var putExtra = new qiniu.resume_up.PutExtra(); // 扩展参数 putExtra.params = { "x:name": "", "x:age": 27, } putExtra.fname = 'testfile.mp4'; // 若是指定了断点记录文件,那么下次会从指定的该文件尝试读取上次上传的进度,以实现断点续传 putExtra.resumeRecordFile = 'progress.log'; var key = null; // 文件分片上传 resumeUploader.putFile(uploadToken, key, localFile, putExtra, function(respErr, respBody, respInfo) { if (respErr) { throw respErr; } if (respInfo.statusCode == 200) { console.log(respBody); } else { console.log(respInfo.statusCode); console.log(respBody); } });
resumeUploader.putWithoutKey 调用 key为null的 resumeUploader.put方法
resumeUploader.putFileWithoutKey 调用 key为null的 resumeUploader.putFile方法code