全部產品
Search
文件中心

Object Storage Service:管理檔案中繼資料(Node.js SDK)

更新時間:Nov 29, 2025

Object Storage Service儲存的檔案(Object)資訊包含Key、Data和Object Meta。Object Meta是對檔案的屬性描述,包括HTTP標準屬性(HTTP Header)和使用者自訂中繼資料(User Meta)兩種。您可以通過設定HTTP標準屬性來自訂HTTP請求的策略,例如檔案(Object)緩衝策略、強制下載策略等。您還可以通過設定使用者自訂中繼資料來標識Object的用途或屬性等。

上傳檔案時指定檔案中繼資料

使用putputStreammultipartUpload時,都可以通過指定meta參數來指定檔案的中繼資料:

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

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',
});

async function put() {
  try {
    // 中繼資料設定方式:作為 options 對象的 meta 屬性
    let result = await client.put('object-name', path.normalize('D:\\localpath\\examplefile.txt'), {
      meta: {
        year: '2025',  // 中繼資料值應該是字串
        people: 'mary'
      }
    });
  console.log(result);
  } catch (e) {
    console.log(e);
  }
}

put();

修改已有檔案的檔案中繼資料

您還可以通過putMeta介面來更新檔案中繼資料:

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',
});

async function putMeta() {
  try {
    let meta = { year: 2025, people: 'jack' };
    let result = await client.putMeta('object-name', meta);
    console.log(result);
  } catch (e) {
    console.log(e);
  }
}

putMeta();

擷取檔案中繼資料

您可以通過head介面來擷取檔案中繼資料。

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',
});

async function headInfo() {
  // 填寫檔案完整路徑,例如exampledir/exampleobject.txt。檔案完整路徑中不能包含Bucket名稱。
  const result = await client.head("exampledir/exampleobject.txt");
  console.log(result);
}

headInfo();