すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:コールバックのアップロード

最終更新日:Feb 21, 2024

オブジェクトがアップロードされると、object Storage Service (OSS) はアプリケーションサーバーのコールバックプロセスを開始できます。 アップロードコールバックを設定するには、必要なコールバックパラメーターをOSSに送信されるアップロードリクエストに追加するだけです。

使用上の注意

アップロードコールバックを設定する前に、アップロードコールバック機能を理解してください。 詳細については、「アップロードコールバック」をご参照ください。

次のサンプルコードは、examplefile.txtという名前のローカルファイルをexamplebucketという名前のバケットにアップロードするときに、アップロードコールバックを設定する方法の例を示しています。 ローカルファイルがアップロードされた後、OSS内のオブジェクトの名前はexampleobject.txtです。

const OSS = require('ali-OSS ');
varpath=require('path');

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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: 'examplebucket'
});

const options = {
  callback: {
    // コールバック要求を受信するコールバックサーバーのアドレスを指定します。 例: http://oss-demo.aliyuncs.com:23450。 
    url: 'http:// oss-demo.aliyuncs.com:23450 '、
    // (オプション) コールバックリクエストヘッダーに含まれるHostフィールドを指定します。 
    // host: 'yourCallbackHost' 、
    // コールバック要求の本文を指定します。 
    body: 'bucket =${ bucket}&object =${ object}&var1 =${ x:var1}&var2 =${ x:var2}'、
    // コールバック要求でContent-Typeを指定します。 
    contentType: 'application/x-www-form-urlencodd' 、
    // コールバック要求のカスタムパラメータを設定します。 
    customValue: {
      var1: 'value1' 、
      var2: 'value2'
    }
  }
}

async関数put () {
  try {
    // オブジェクトとローカルファイルのフルパスを指定します。 オブジェクトのフルパスにバケット名を含めないでください。 
    // デフォルトでは、ローカルファイルのパスを指定しないと、サンプルプログラムが属するプロジェクトのローカルパスからファイルがアップロードされます。 
    let result = await client.put('exampleobject.txt '、path.normalize('/localpath/examplefile.txt ') 、オプション);
    console.log (結果);
  } catch (e) {
    console.log(e);
  }
}

put(); 

参考資料

  • アップロードコールバックの設定に使用される完全なサンプルコードについては、GitHubをご覧ください。

  • アップロードコールバックを設定するために呼び出すことができるAPI操作の詳細については、「コールバック」をご参照ください。

  • コールバックエラーをアップロードする原因と解決策の詳細については、「HTTPステータスコード203」をご参照ください。