对象存储OSS在完成文件(Object)上传时可以提供回调(Callback)给应用服务器。您只需要在发送给OSS的请求中携带相应的Callback参数,即可实现回调。
说明
callback的构建支持发送callbackSNI等设置,详细信息可参见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,
authorizationV4: true,
// 填写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",
// 客户端发起回调请求时,OSS是否向通过callbackUrl指定的回源地址发送服务器名称指示SNI(Server Name Indication)
callbackSNI: true,
// 设置发起回调请求的自定义参数。
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();