Object Storage Service在完成檔案(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();