- 七牛对象存储jssdk,配置的最大文件体积是100mb,但是上传25mb的图片是却报413?
- 线上运行相当长一段时间,大概半年,这是第一例出现413的
function sendMyProduct(upToken, name, container, callback) {
var uploader = Qiniu.uploader({
runtimes: 'html5,flash,html4', // 上传模式,依次退化
browse_button: name, // 上传选择的点选按钮,**必需**
uptoken: upToken,
unique_names: true,
domain: 'http://xxx.xxxx.com/',
container: container, // 上传区域DOM ID,默认是browser_button的父元素,
max_file_size: '100mb', // 最大文件体积限制
flash_swf_url: 'js/plupload/Moxie.swf', // 引入flash,相对路径
max_retries: 3, // 上传失败最大重试次数
dragdrop: true, // 开启可拖曳上传
drop_element: container, // 拖曳上传区域元素的ID,拖曳文件或文件夹后可触发上传
chunk_size: '4mb', // 分块上传时,每片的体积
auto_start: true, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传
multi_selection: false, // 是否可以一次选择多张
init: {
'FilesAdded': function(up, files) {
plupload.each(files, function(file) {
})
},
'BeforeUpload': function(up, file) {
},
'UploadProgress': function(up, file) {
let progressBar = $('#progressBar')
if (file.percent > 0 && file.percent < 100) {
progressBar.text("上传中" + file.percent + "%")
} else {
progressBar.text('')
}
},
'FileUploaded': function(up, file, info) {
callback(up, file, info)
},
'Error': function(up, err, errTip) {
alert(errTip)
},
'UploadComplete': function() {
// 清除自动生成的container。
const elements = $('.moxie-shim')
const len = elements.length
const removeElements = elements.slice(0, len - 1)
removeElements.remove()
},
'Key': function(up, file) {
var key = ''
return key
}
}
})
}
- 报错信息和network面板
- 如果此版本无较好的解决方法,打算升级一下sdk。抛弃这种上传的方式使用下述方法重写
var observable = qiniu.upload(file, key, token, putExtra, config)
var subscription = observable.subscribe(observer) // 上传开始
// or
var subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
subscription.unsubscribe() // 上传取消
这个报错一般是后端的token里policy的限制,可以贴一下报错时的上传token。