七牛分片上传
起因
今天接到领到的一个任务,要把一个5个g的视频上传到七牛,用原来的webuploader上传的方式发现报错,后来在百度上查资料发现单文件不能超过1g
解决方案
官网的示例 https://developer.qiniu.com/kodo/sdk/1283/javascript
废话不多说,直接开撸代码
JAVA获取token
这里为了方便 直接写在jsp里面了
<%@ page import="com.qiniu.util.Auth" %>
<%
String accessKey = "";
String secretKey = "";
String bucket = "";
Auth auth = Auth.create(accessKey, secretKey);
String upToken = auth.uploadToken(bucket).trim();
out.print(upToken);
%>
页面上放一个file标签
<div id="box2">
<input class="file-input" type="file" id="select2"/>
</div>
上传部分script
$("#select2").unbind("change").bind("change", function () {
var domain = ""; //你的七牛空间域名
var config = {
useCdnDomain: true,
disableStatisticsReport: false,
retryCount: 6,
region: qiniu.region.z1
};
var putExtra = {
fname: "",
params: {},
mimeType: null
};
var observer = {
next(res) {
console.log("已上传:" + res.total.percent);
},
error(err) {
console.log("上传发生问题:" + err);
},
complete(res) {
console.log("上传成功,文件下载地址:" + domain + res.key);
}
}
var file = this.files[0];
var key = file.name;
var observable = qiniu.upload(file, key, "<%=upToken%>", putExtra, config);
observable.subscribe(observer);
})
下面我们分析一下这个代码
更多设置和功能可以参考官方的sdk
本示例代码github:https://github.com/qq49019994/Qiniu-JavaScript-SDK/