全部產品
Search
文件中心

Object Storage Service:Node.js上傳回調

更新時間:Oct 29, 2024

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

相關文檔

  • 關於上傳回調的完整範例程式碼,請參見GitHub樣本

  • 關於上傳回調的API介面說明,請參見Callback

  • 關於上傳回調的錯誤原因和解決方案,請參見203錯誤

  • 關於回調功能的詳細參數配置和注意事項,請參見Callback