Updated on 2026-08-14 GMT+08:00

Performing a File-based Upload

If you have any questions during development, post them on the Issues page of GitHub. For details about the API parameters and method, see PUT Object.

Prerequisites

Ensure that you have made the following preparations before using the SDK:

  1. You have selected a proper SDK version by referring to Before You Start.
  2. You have downloaded and installed the OBS SDK for BrowserJS by referring to SDK Download Links.

Sample Code

File-based upload uses local files as the data source of objects. Sample code is as follows:

// Create an ObsClient instance.
var obsClient = new ObsClient({
    // Hard-coded or plaintext AK and SK are risky. For security purposes, encrypt your AK and SK before storing them in the configuration file or environment variables. In this example, the AK and SK are stored in environment variables. Before running the code in this example, configure environment variables AccessKeyID and SecretAccessKey.
    // The front-end code does not have the process environment variable, so you need to use a module bundler like webpack to define the process variable.
    // Obtain an AK/SK pair on the management console. For details, see https://support.huaweicloud.com/intl/en-us/usermanual-ca/ca_01_0003.html.
    access_key_id: process.env.AccessKeyID,
    secret_access_key: process.env.SecretAccessKey,
    // CN-Hong Kong is used here in this example. Replace it with the one currently in use.
    server: 'https://obs.ap-southeast-1.myhuaweicloud.com'
});

obsClient.putObject({
       Bucket: 'bucketname',
       Key: 'objectname',
       SourceFile: document.getElementById('input-file').files[0]
}, function (err, result) {
       if(err){
              console.error('Error-->' + err);
       }else{
              console.log('Status-->' + result.CommonMsg.Status);
       }
});
  • Use the SourceFile parameter to specify the to-be-uploaded file (a File or Blob object). For example, on an HTML page, use an input tag whose type is file to specify the to-be-uploaded file: <input type="file" id="input-file"/>.
  • The SourceFile parameter and the Body parameter cannot be used together.
  • The content to be uploaded cannot exceed 5 GB.