回 楼主(百炼钢) 的帖子
你指的是oss上传中的callback功能把?可以参考这个文档里对callback的说明使用其中在Header中携带参数的方式来实现,js sdk 接口中option参数可以包含header字段。以下是可以参考的oss callback功能说明和js sdk 参数的说明:
https://help.aliyun.com/document_detail/31989.html?spm=5176.doc31961.6.874.ktSWhX
https://github.com/ali-sdk/ali-oss#putname-file-options
-------------------------
回 4楼(百炼钢) 的帖子
根据callback文档里的说明,使用js sdk接口的option参数,这个参数可以追加header字段,就是之前发的那个github的地址里有说明这个字段,以下sample代码方便你理解(注:sample代码没有经过严格测试仅用来参考),其中your_var_1和your_var_2应该就是你需要的参数字段,如下:
var co = require('co');
var OSS = require('ali-oss');
var urlutil = require('url');
var client = new OSS({
region: 'xxxx',
accessKeyId: 'xxxx',
accessKeySecret: 'xxxx'
});
encodeCallback = function (cb) {
var url = urlutil.parse(cb.url);
url.query = cb.query;
var json = {
callbackUrl: url.format(),
callbackBody: cb.body,
callbackBodyType: cb.contentType || 'application/x-www-form-urlencoded'
};
return new Buffer(JSON.stringify(json)).toString('base64');
};
co(function* () {
client.useBucket('your_bucket');
var result = yield client.put('object_name', 'local_file_path',
{headers: {
'x-oss-callback': encodeCallback({
url: 'http://call_back_url:xxx/xxx',
query: {your_var_1: 'your_var_value_1', your_var_2: 'your_var_value_2'},
body: 'bucket=${bucket}&object=${object}'
})
}
});
console.log(result);
}).catch(function (err) {
console.log(err);
});