js端实现callBack 回调服务器,本例用固定的accessKeyId 访问,真正使用过程中切换到 STSToken使用方式即可,已测试可行。现在贴出来分享给大家
注:需要依赖一个base64的js库
var bucket = '阿里云oss服务器新建bucket名称';
var region = 'oss-cn-beijing';
var urllib = OSS.urllib;
var Buffer = OSS.Buffer;
var OSS = OSS.Wrapper;
var STS = OSS.STS;
// 初始化OOS.Wrapper
var client = new OSS({
region: region,
accessKeyId: '账号accessKeyId',
accessKeySecret: '账号accessKeySecret',
bucket: bucket
});
//定义callback url与body,参数mobile=${x:mobile} ,可使用变量替换,必须为 x:my_var 格式
var callback={
"callbackUrl":"api.abc.com/a/b",
"callbackBody":"bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mobile=${x:mobile}&type=${x:type}"
}
//定义callbackbody中需要替换的变量
var callbackvar ={
"x:mobile":"13999999999",
"x:type":"1"
}
//64位编码
var parse = function(data){
var dataBase64 = Base64.encode(JSON.stringify(data))
console.log(dataBase64)
return dataBase64;
}
var uploadFile = function (client) {
var file = document.getElementById('file').files[0];
var key = document.getElementById('object-key-file').value.trim() || 'object';
console.log(file.name + ' => ' + key);
//分片上传,回调只会在完成后执行
return client.multipartUpload(key, file, {
//headers 头参数添加
//x-oss-callback 定义的callbackurl+callbackbody Base64编码后的值
//x-oss-callback-var 自定义参数值替换callbackbody 变量
headers: {
'x-oss-callback':parse(callback),
'x-oss-callback-var': parse(callbackvar)
}
}).then(function (res) {
console.log('upload success: %j', res);
if(res.data.code==100){
alert("callback complete!The message is send");
}
return true;
});
};
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。