对象存储OSS在完成文件(Object)上传时可以提供回调(Callback)给应用服务器。您只需要在发送给OSS的请求中携带相应的Callback参数,即可实现回调。
注意事项
在配置上传回调之前,请确保您已了解该功能。更多信息,请参见上传回调。
示例代码
以下代码用于在上传本地文件examplefile.txt到目标存储空间examplebucket中的exampleobject.txt文件时使用上传回调(callback)。
const OSS = require('ali-oss');
varpath=require('path');
const client = new OSS({
// yourregion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
region: 'yourregion',
// 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
// 填写Bucket名称。
bucket: 'examplebucket'
});
const options = {
callback: {
// 设置回调请求的服务器地址,例如http://oss-demo.aliyuncs.com:23450。
url: 'http://oss-demo.aliyuncs.com:23450',
//(可选)设置回调请求消息头中Host的值,即您的服务器配置Host的值。
//host: 'yourCallbackHost',
// 设置发起回调时请求body的值。
body: 'bucket=${bucket}&object=${object}&var1=${x:var1}&var2=${x:var2}',
// 设置发起回调请求的Content-Type。
contentType: 'application/x-www-form-urlencoded',
// 设置发起回调请求的自定义参数。
customValue: {
var1: 'value1',
var2: 'value2'
}
}
}
async function put () {
try {
// 填写Object完整路径和本地文件的完整路径。Object完整路径中不能包含Bucket名称。
// 如果未指定本地路径,则默认从示例程序所属项目对应本地路径中上传文件。
let result = await client.put('exampleobject.txt', path.normalize('/localpath/examplefile.txt'), options);
console.log(result);
} catch (e) {
console.log(e);
}
}
put();