すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:オブジェクトの一覧表示

最終更新日:Dec 18, 2023

このトピックでは、バージョン管理バケット内のオブジェクトを一覧表示する方法について説明します。 すべてのオブジェクト、指定された数のオブジェクト、および名前に指定されたプレフィックスが含まれるオブジェクトを一覧表示できます。

バケット内の全オブジェクトのバージョン一覧表示

次のサンプルコードでは、指定したバケット内の削除マーカーを含むすべてのオブジェクトのバージョンを一覧表示する方法の例を示します。

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

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

// 削除マーカーを含む、バケット内のすべてのオブジェクトのバージョンを一覧表示します。 
async関数getObjectVersions() {
  nextKeyMarker = nullにします。
  let nextVersionMarker = null;
  let versionListing = null;
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker、
      versionIdMarker: nextVersionMarker、
    });

    versionListing.objects.forEach((o) => {
      console.log('${o.name}, ${o.versionId}');
    });
    versionListing.de leteMarker.forEach((o) => {
      console.log('${o.name}, ${o.versionId}');
    });

    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
  } while (versionListing.isTruncated);
}

getObjectVersions(); 

指定されたプレフィックスを名前に含むオブジェクトのバージョンを一覧表示する

次のサンプルコードは、名前に指定されたプレフィックスが含まれるオブジェクトのバージョンを一覧表示する方法の例を示します。

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

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

// 名前に "test-" プレフィックスが含まれるオブジェクトのすべてのバージョンを一覧表示します。 
async関数getObjectVersionsByPrefix() {
  nextKeyMarker = nullにします。
  let nextVersionMarker = null;
  let versionListing = null;
  constプレフィックス='test-'
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker、
      versionIdMarker: nextVersionMarker、
      prefix
    })
    versionListing.objects.forEach(o => {
      console.log('${o.name}, ${o.versionId}')
    })
    versionListing.de leteMarker.forEach(o => {
      console.log('${o.name}, ${o.versionId}')
    })
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
  } while (versionListing.isTruncated);
}

getObjectVersionsByPrefix(); 

指定した数のオブジェクトのバージョンを一覧表示する

次のサンプルコードは、指定した数のオブジェクトのバージョンを一覧表示する方法の例を示しています。

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

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

async関数getObjectVersionByNumber() {
  // 最大100のオブジェクトバージョンを返すように指定します。 
  const versionListing = await client.getBucketVersions({
    "max-keys": 100、
  });
  // 返されたオブジェクトバージョンのバージョンIDを表示します。 バケットのバージョン管理が有効になっていない場合、返されるオブジェクトのバージョンIDはnoneになります。 
  versionListing.objects.forEach((o) => {
    console.log('${o.name}, ${o.versionId}');
  });
  versionListing.de leteMarker.forEach((o) => {
    console.log('${o.name}, ${o.versionId}');
  });
}

getObjectVersionByNumber(); 

ディレクトリによるオブジェクトの一覧表示

OSSはフラット構造を使用してオブジェクトを格納します。 ディレクトリは、名前がスラッシュ (/) で終わるゼロバイトのオブジェクトです。 ディレクトリをアップロードおよびダウンロードできます。 デフォルトでは、名前がスラッシュ (/) で終わるオブジェクトは、OSSコンソールにディレクトリとして表示されます。

ディレクトリごとにオブジェクトを一覧表示するには、リクエストに区切り文字とプレフィックスパラメーターを指定できます。

  • リクエストでプレフィックスをディレクトリ名に設定すると、指定されたプレフィックスを含む名前のオブジェクトとサブディレクトリが一覧表示されます。

  • リクエストでプレフィックスを指定し、区切り文字をスラッシュ (/) に設定すると、ディレクトリ内で指定されたプレフィックスで始まる名前のオブジェクトとサブディレクトリが一覧表示されます。 各サブディレクトリは、CommonPrefixesで単一の結果要素としてリストされます。 これらのサブディレクトリ内のオブジェクトおよびディレクトリはリストされません。

バケットにoss.jpgfun/test.jpgfun/movie/001.avifun/movie/007.aviのオブジェクトが含まれているとします。 ディレクトリ区切り文字としてスラッシュ (/) を指定します。 次の例では、バケット内のシミュレートされたディレクトリにオブジェクトを一覧表示する方法について説明します。

バケットのルートディレクトリ内のオブジェクトのリストバージョン

次のサンプルコードは、バケットのルートディレクトリにあるオブジェクトのバージョンを一覧表示する方法の例を示しています。

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

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

// 区切り文字パラメーターをスラッシュ (/) に設定して、ルートディレクトリ内のオブジェクトのバージョンとサブディレクトリの名前を一覧表示します。 
async関数getRootObjectVersions() {
  nextKeyMarker = nullにします。
  let nextVersionMarker = null;
  let versionListing = null;
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker、
      versionIdMarker: nextVersionMarker、
      delimiter: "/" 、
    });
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
    console.log(versionListing);
  } while (versionListing.isTruncated);
}

getRootObjectVersions(); 

ディレクトリ内のオブジェクトとサブディレクトリの一覧表示

次のサンプルコードは、バケットのディレクトリ内のオブジェクトとサブディレクトリを一覧表示する方法の例を示しています。

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

const client = new OSS({
  // バケットが配置されているリージョンを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、リージョンを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、
  // バケットの名前を指定します。 
  bucket: 'yourbucketname'
});

// funディレクトリ内のすべてのオブジェクトとサブディレクトリを一覧表示するようにprefixパラメーターを設定します。 区切り文字パラメーターをスラッシュ (/) に設定します。 
async関数getObjectVersionsByPrefixAndDirectory() {
  nextKeyMarker = nullにします。
  let nextVersionMarker = null;
  let versionListing = null;
  let prefix = "foo/";
  do {
    versionListing = await client.getBucketVersions({
      keyMarker: nextKeyMarker、
      versionIdMarker: nextVersionMarker、
      プレフィックス、
      delimiter: "/" 、
    });
    nextKeyMarker = versionListing.NextKeyMarker;
    nextVersionMarker = versionListing.NextVersionIdMarker;
    console.log(versionListing);
  } while (versionListing.isTruncated);
}

getObjectVersionsByPrefixAndDirectory(); 

参考資料

オブジェクトを一覧表示するために呼び出すAPI操作の詳細については、「ListObjectVersions (GetBucketVersions) 」をご参照ください。