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

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

最終更新日:Dec 20, 2023

このトピックでは、バケット内のすべてのオブジェクト、名前に特定のプレフィックスが含まれるオブジェクト、名前が特定のマーカーの後にアルファベット順に表示されるオブジェクトなど、バケット内のオブジェクトを一覧表示する方法について説明します。

バケット内のすべてのオブジェクトの一覧表示

次のコードでは、examplebucketという名前のバケット内のすべてのオブジェクトを一覧表示する方法の例を示します。

'aliyun/oss 'が必要です

client = Aliyun::OSS::Client.new (
  # バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
  エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
  # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)

# バケットの名前を指定します。 例: examplebucket. 
bucket = client.get_bucket('examplebucket')
# バケット内のすべてのオブジェクトを一覧表示します。 
objects = bucket.list_objects
objects.each { | o | puts o.key } 

名前に特定のプレフィックスが含まれるオブジェクトのリスト

次のコードは、prefixパラメーターで指定された特定のプレフィックスを名前に含むオブジェクトを一覧表示する方法の例を示しています。

'aliyun/oss 'が必要です

client = Aliyun::OSS::Client.new (
  # バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
  エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
  # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)

# バケットの名前を指定します。 例: examplebucket. 
bucket = client.get_bucket('examplebucket')
# 名前に 'my-'プレフィックスが含まれるすべてのオブジェクトをバケットに一覧表示します。 
objects = bucket.list_objects(:prefix => 'my-')
objects.each { | o | puts o.key } 

特定のマーカーの後に名前がアルファベット順にあるオブジェクトをリストする

次のコードは、名前が特定のマーカーの後にアルファベット順にあるオブジェクトをリストする方法の例を示しています。

'aliyun/oss 'が必要です

client = Aliyun::OSS::Client.new (
  # バケットが配置されているリージョンのエンドポイントを指定します。 たとえば、バケットが中国 (杭州) リージョンにある場合、エンドポイントをhttps://oss-cn-hangzhou.aliyuncs.comに設定します。 
  エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
  # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)

# バケットの名前を指定します。 例: examplebucket. 
bucket = client.get_bucket('examplebucket')
# 名前に「my-」プレフィックスが含まれ、バケット内の「my-object」マーカーの後にアルファベット順に表示されるすべてのオブジェクトを一覧表示します。 
objects = bucket.list_objects(:prefix => 'my-', :marker => 'my-object')
objects.each { | o | puts o.key } 

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

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

たとえば、次のオブジェクトは特定のバケットに保存されます。

foo/x
foo/y
foo /バー /a
foo /バー /b
foo/hello/C/1
foo/hello/C/2
...
foo/hello/C/9999 

次のコードでは、list_dir関数を使用して、バケット内の特定のディレクトリにあるオブジェクトとサブディレクトリを一覧表示する方法の例を示します。

'aliyun/oss 'が必要です

def list_dir(dir, bucket)
  objects = bucket.list_objects(:prefix => dir, :delimiter => '/')
  objects.each do | obj |
    if obj.is_a?(Aliyun::OSS::Object) # object
      は "Object: #{obj.key}" を置きます
    else # commonプレフィックス
      「SubDir: #{obj} 」を置く
      list_dir(obj, bucket) # list_dir操作を繰り返し呼び出してサブディレクトリを一覧表示します。 
    end
  終了
終了

client = Aliyun::OSS::Client.new (
  # この例では、中国 (杭州) リージョンのエンドポイントが使用されます。 実際のエンドポイントを指定します。 
  エンドポイント: 'https:// oss-cn-hangzhou.aliyuncs.com '、
  # 環境変数からアクセス資格情報を取得します。 サンプルコードを実行する前に、OSS_ACCESS_KEY_IDおよびOSS_ACCESS_KEY_SECRET環境変数が設定されていることを確認してください。 
  access_key_id: ENV['OSS_ACCESS_KEY_ID '] 、
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET ']
)

# バケットの名前を指定します。 例: examplebucket. 
bucket = client.get_bucket('examplebucket')

list_dir('foo/'、バケット) 

次の応答が返されます。

SubDir: foo /バー /
オブジェクト: foo/bar /
オブジェクト: foo/bar/3.txt
オブジェクト: foo/bar/oss.jpg
SubDir: foo/hello /
オブジェクト: foo/hello /
オブジェクト: foo/hello/001.avi
オブジェクト: foo/hello/007.avi
オブジェクト: foo/ 

参考資料

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