All Products
Search
Document Center

Object Storage Service:Upload callbacks

Last Updated:Nov 01, 2024

When an object is uploaded, Object Storage Service (OSS) can start a callback process for the application server. To configure upload callbacks, you need to only add the required callback parameters to the upload request that is sent to OSS.

Note

Whether OSS sends callbackSNI depends on the construction of callback parameters. For more information, see Callback.

Usage notes

Before you configure an upload callback, familiarize yourself with the upload callback feature. For more information, see Upload callback.

Examples

The following sample code provides an example on how to configure upload callbacks when you upload a local file named examplefile.txt to a bucket named examplebucket. After the local file is uploaded, the name of the object in OSS is exampleobject.txt.

const OSS = require("ali-oss");

varpath = require("path");

const client = new OSS({
  // Specify the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the region to oss-cn-hangzhou. 
  region: "yourregion",
  // Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured. 
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  authorizationV4: true,
  // Specify the name of the bucket. 
  bucket: "examplebucket",
});

const options = {
  callback: {
    // Specify the address of the callback server that receives the callback request. Example: http://oss-demo.aliyuncs.com:23450. 
    url: "http://oss-demo.aliyuncs.com:23450",
    // (Optional) Specify the Host field included in the callback request header. 
    //host: 'yourCallbackHost',
    // Specify the body of the callback request. 
    body: "bucket=${bucket}&object=${object}&var1=${x:var1}&var2=${x:var2}",
    // Specify Content-Type in the callback request. 
    contentType: "application/x-www-form-urlencoded",
    // Specifies whether OSS sends Server Name Indication (SNI) to the origin address specified by callbackUrl when a callback request is initiated from the client.
    callbackSNI: true,
    // Configure custom parameters for the callback request. 
    customValue: {
      var1: "value1",
      var2: "value2",
    },
  },
};

async function put() {
  try {
    // Specify the full paths of the object and the local file. Do not include the bucket name in the full path of the object. 
    // By default, if you do not specify the path of the local file, the file is uploaded from the local path of the project to which the sample program belongs. 
    let result = await client.put(
      "exampleobject.txt",
      path.normalize("/localpath/examplefile.txt"),
      options
    );
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

put();

References

  • For the complete sample code that is used to configure upload callbacks, visit GitHub.

  • For more information about the API operation that you can call to configure upload callbacks, see Callback.

  • For more information about the causes of and solutions to upload callback errors, see HTTP status code 203.

  • For more information about the parameter settings for the callback feature and usage notes, see Callback.