全部產品
Search
文件中心

Object Storage Service:初始化(Node.js SDK)

更新時間:Nov 29, 2025

Client是OSS Node.js的用戶端,用於管理儲存空間和檔案等OSS資源。使用Node.js SDK發起OSS請求時,您需要初始化一個Client執行個體,並根據需要修改預設配置項。

注意事項

前置條件

重要

在配置用戶端前,您需要先使用RAM使用者AccessKey完成配置環境變數。

  1. 建立有OSS系統管理權限的RAM使用者AccessKey

    使用ROS指令碼快速建立有OSS系統管理權限的RAM使用者AccessKey

    在Resource Orchestration Service控制台的建立資源棧頁面的安全確認下,勾選確認,然後單擊建立

    1.png

    建立完成後,在輸出中,複製建立的AccessKey。

    image

  2. 使用RAM使用者AccessKey配置環境變數。

    Linux

    1. 在命令列介面執行以下命令來將環境變數設定追加到~/.bashrc 檔案中。

      echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bashrc
      echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bashrc
      1. 執行以下命令使變更生效。

        source ~/.bashrc
      2. 執行以下命令檢查環境變數是否生效。

        echo $OSS_ACCESS_KEY_ID
        echo $OSS_ACCESS_KEY_SECRET

    macOS

    1. 在終端中執行以下命令,查看預設Shell類型。

      echo $SHELL
      1. 根據預設Shell類型進行操作。

        Zsh

        1. 執行以下命令來將環境變數設定追加到 ~/.zshrc 檔案中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.zshrc
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.zshrc
        2. 執行以下命令使變更生效。

          source ~/.zshrc
        3. 執行以下命令檢查環境變數是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

        Bash

        1. 執行以下命令來將環境變數設定追加到 ~/.bash_profile 檔案中。

          echo "export OSS_ACCESS_KEY_ID='YOUR_ACCESS_KEY_ID'" >> ~/.bash_profile
          echo "export OSS_ACCESS_KEY_SECRET='YOUR_ACCESS_KEY_SECRET'" >> ~/.bash_profile
        2. 執行以下命令使變更生效。

          source ~/.bash_profile
        3. 執行以下命令檢查環境變數是否生效。

          echo $OSS_ACCESS_KEY_ID
          echo $OSS_ACCESS_KEY_SECRET

    Windows

    CMD

    1. 在CMD中運行以下命令。

      setx OSS_ACCESS_KEY_ID "YOUR_ACCESS_KEY_ID"
      setx OSS_ACCESS_KEY_SECRET "YOUR_ACCESS_KEY_SECRET"
      1. 運行以下命令,檢查環境變數是否生效。

        echo %OSS_ACCESS_KEY_ID%
        echo %OSS_ACCESS_KEY_SECRET%

    PowerShell

    1. 在PowerShell中運行以下命令。

      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_ID", "YOUR_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
      [Environment]::SetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", "YOUR_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)
      1. 運行以下命令,檢查環境變數是否生效。

        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_ID", [EnvironmentVariableTarget]::User)
        [Environment]::GetEnvironmentVariable("OSS_ACCESS_KEY_SECRET", [EnvironmentVariableTarget]::User)

  3. 參考上述方式修改系統內容變數後,請重啟或重新整理您的編譯運行環境,包括IDE、命令列介面、其他傳統型應用程式及後台服務,以確保最新的系統內容變數成功載入。

預設配置樣本

以下程式碼範例示範了如何使用V4簽名和V1簽名配置OSSClient

V4簽名(推薦)

重要
  • 使用V4簽名演算法初始化OSSClient時,您需要指定OSS專用地區ID作為發起請求地區的標識,以華東1(杭州)為例,Region填寫為:oss-cn-hangzhou。如需查詢其它Region ID請參見地區和Endpoint

  • 您需要在代碼中顯式聲明使用 V4 簽名演算法,樣本值:authorizationV4: true

以下是使用OSS網域名稱配置OSSClient並使用V4簽名的範例程式碼。

請注意,以下程式碼範例預設使用Bucket公網網域名稱以及RAM使用者的AK資訊。

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

const client = new OSS({
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // yourRegion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'oss-cn-hangzhou',
  // 使用V4簽名演算法
  authorizationV4: true,
  // yourBucketName填寫Bucket名稱。
  bucket: 'yourBucketName',
  // yourEndpoint填寫Bucket所在地區對應的公網Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou.aliyuncs.com。
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
});

V1簽名(不推薦)

重要

阿里雲Object Storage Service自2025年03月01日起不再對新使用者(即新UID )開放使用V1簽名,並將於2025年09月01日起停止更新與維護且不再對新增Bucket開放使用V1簽名。請儘快切換到V4簽名,避免影響服務。更多資訊,請參見公告連結

以下代碼使用OSS網域名稱配置OSSClient。關於不同地區的OSS網域名稱,請參見地區和Endpoint

使用OSS網域名稱建立Client

以下代碼用於使用OSS網域名稱初始化。

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

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,
  // yourBucketName填寫Bucket名稱。
  bucket: 'yourBucketName',
});

使用自訂網域名建立Client

以下代碼用於使用自訂網域名建立Client。關於使用自訂網域名訪問OSS的更多資訊,請參見通過自訂網域名訪問OSS

重要

使用自訂網域名無法使用client.listBuckets()方法。

const OSS = require('ali-oss')

const client = new OSS({  
 // 使用自訂網域名作為Endpoint。
 endpoint: 'http://img.example.com', 
 // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
 accessKeyId: process.env.OSS_ACCESS_KEY_ID,
 accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
 cname: true,
 // yourBucketName填寫Bucket名稱。
 bucket: 'yourBucketName',
});

常見情境配置樣本

如果您有配置其它網域名稱的需求,請參考以下程式碼範例。請注意,以下程式碼範例預設使用V4簽名以及RAM使用者的AK資訊。

內網網域名稱配置樣本

當您的應用部署在阿里雲的ECS執行個體上,並且需要頻繁訪問同地區的OSS資源時,使用內網網域名稱可以降低流量成本並提高訪問速度。

以下是使用OSS內網網域名稱配置OSSClient的範例程式碼。

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

const client = new OSS({
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // yourRegion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'oss-cn-hangzhou',
  //使用V4簽名
  authorizationV4: true,
  // yourBucketName填寫Bucket名稱。
  bucket: 'yourBucketName',
  // yourEndpoint填寫Bucket所在地區對應的內網Endpoint。以華東1(杭州)為例,Endpoint填寫為https://oss-cn-hangzhou-internal.aliyuncs.com。
  endpoint: 'yourEndpoint',
});

自訂網域名配置樣本

以下是使用自訂網域名配置OSSClient的範例程式碼。

警告

您需要先將自訂網域名綁定至Bucket預設網域名稱,否則將引發報錯!關於綁定自訂網域名的詳細操作,請參見通過自訂網域名訪問OSS

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

const client = new OSS({
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // yourRegion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'oss-cn-hangzhou',
  // 使用V4簽名
  authorizationV4: true,
  // yourBucketName填寫Bucket名稱。
  bucket: 'yourBucketName',
  // yourEndpoint請填寫您的自訂網域名。例如https://static.example.com。
  endpoint: 'yourEndpoint',
  // 設定true開啟CNAME選項。
  cname: true,
});

傳輸加速網域名稱配置樣本

以下是使用傳輸加速網域名稱配置OSSClient的範例程式碼。

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

const client = new OSS({
  // 從環境變數中擷取訪問憑證。運行本程式碼範例之前,請確保已設定環境變數OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
  accessKeyId: process.env.OSS_ACCESS_KEY_ID,
  accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
  // yourRegion填寫Bucket所在地區。以華東1(杭州)為例,Region填寫為oss-cn-hangzhou。
  region: 'oss-cn-hangzhou',
  //使用V4簽名
  authorizationV4: true,
  // yourBucketName填寫Bucket名稱。
  bucket: 'yourBucketName',
  // yourEndpoint請填寫傳輸加速網域名稱。例如'oss-accelerate.aliyuncs.com'
  endpoint: 'oss-accelerate.aliyuncs.com',
});

相關文檔

關於OSSClient的更多配置選項,請參見官網樣本