开发者社区> 问答> 正文

OSS-JavaScript-SDK之callBack最简单实现

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;
  });
};

展开
收起
灰灰灰太狼 2017-06-30 18:31:30 5468 0
2 条回答
写回答
取消 提交回答
  • 您的无私奉献精神值得我们学习!向您致敬!
    2017-07-01 12:38:59
    赞同 展开评论 打赏
  • ReOSS-JavaScript-SDK之callBack最简单实现
    贴一个OSS-JS实用 github源码地址    http s://github.com/rockuw/oss-in-browser
    2017-06-30 18:44:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript异步编程 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载