全部產品
Search
文件中心

Object Storage Service:下載檔案(Node.js SDK)

更新時間:Nov 29, 2025

預設情況下,在受版本控制的儲存空間(Bucket)中調用GetObject介面僅返迴文件(Object)的目前的版本。

背景資訊

對某個Bucket執行GetObject操作時,分以下三種情況:

  • 如果該Bucket中Object的目前的版本是刪除標記(Delete Marker),則返回404 Not Found。

  • 如果在查詢參數中指定Object的versionId,則返回指定的Object版本。當versionId指定為“null”時,則返回versionId為“null”的Object版本。

  • 通過指定versionId的方式來擷取刪除標記時,則返回405 Method Not Allowed。

許可權說明

阿里雲帳號預設擁有全部許可權。阿里雲帳號下的RAM使用者或RAM角色預設沒有任何許可權,需要阿里雲帳號或帳號管理員通過RAM PolicyBucket Policy授予操作許可權。

API

Action

說明

GetObject

oss:GetObject

下載Object。

oss:GetObjectVersion

下載Object時,如果通過versionId指定了Object的版本,則需要授予此操作的許可權。

kms:Decrypt

下載Object時,如果Object的中繼資料套件含X-Oss-Server-Side-Encryption: KMS,則需要此操作的許可權。

範例程式碼

以下代碼用於下載檔案:

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,
  authorizationV4: true,
  // yourbucketname填寫儲存空間名稱。
  bucket: 'yourbucketname'
});

async function get() {
  // 檔案名稱。
  const result = await client.get('filename', {    
      // 查看下載檔案的版本ID。
      versionId: 'versionid',
  });
  console.log(result.content);
}
get();

相關文檔

關於下載檔案的API介面說明,請參見GetObject