全部产品
Search
文档中心

Object Storage Service:Daftar objek (Ruby SDK)

更新时间:Nov 30, 2025

Topik ini menjelaskan cara mendaftarkan objek dalam sebuah bucket, termasuk semua objek di dalam bucket, objek dengan nama yang mengandung awalan tertentu, dan objek yang secara alfabetis berada setelah penanda tertentu.

Daftarkan semua objek dalam sebuah bucket

Kode berikut menunjukkan cara mendaftarkan semua objek dalam bucket bernama examplebucket:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Tetapkan endpoint ke yang sesuai dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')
# Daftar semua objek.
objects = bucket.list_objects
objects.each { |o| puts o.key }     

Daftarkan objek yang namanya mengandung awalan tertentu

Kode berikut menunjukkan cara mendaftarkan objek yang namanya mengandung awalan tertentu, ditentukan oleh parameter prefix:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Tetapkan endpoint ke yang sesuai dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')
# Daftar semua objek yang memiliki awalan 'my-'.
objects = bucket.list_objects(:prefix => 'my-')
objects.each { |o| puts o.key }   

Daftarkan objek yang namanya secara alfabetis setelah penanda tertentu

Kode berikut menunjukkan cara mendaftarkan objek yang secara alfabetis berada setelah penanda tertentu:

require 'aliyun/oss'

client = Aliyun::OSS::Client.new(
  # Tetapkan endpoint ke yang sesuai dengan wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah China (Hangzhou), tetapkan endpoint ke https://oss-cn-hangzhou.aliyuncs.com.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')
# Daftar semua objek yang memiliki awalan 'my-' dan secara leksikografis berada setelah 'my-object'.
objects = bucket.list_objects(:prefix => 'my-', :marker => 'my-object')
objects.each { |o| puts o.key }      

Fitur folder

OSS menggunakan struktur datar untuk menyimpan objek. Direktori adalah objek nol-byte yang namanya diakhiri dengan garis miring (/). Anda dapat mengunggah dan mengunduh direktori tersebut. Secara default, objek yang namanya diakhiri dengan garis miring (/) ditampilkan sebagai direktori di konsol OSS.

Sebagai contoh, objek-objek berikut disimpan dalam bucket tertentu:

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

Anda dapat memanggil fungsi list_dir untuk mendaftar objek dan subdirektori dalam direktori tertentu:

require '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
      puts "Object: #{obj.key}"
    else # common prefix
      puts "SubDir: #{obj}"
      list_dir(obj, bucket) # Panggil list_dir secara rekursif untuk memproses subdirektori.
    end
  end
end

client = Aliyun::OSS::Client.new(
  # Wilayah China (Hangzhou) digunakan dalam contoh ini. Tentukan wilayah sesuai kebutuhan.
  endpoint: 'https://oss-cn-hangzhou.aliyuncs.com',
  # Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh ini, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
  access_key_id: ENV['OSS_ACCESS_KEY_ID'],
  access_key_secret: ENV['OSS_ACCESS_KEY_SECRET']
)

# Tentukan nama bucket. Contoh: examplebucket.
bucket = client.get_bucket('examplebucket')

list_dir('foo/', bucket)          

Hasil berikut dikembalikan:

SubDir: foo/bar/
Object: foo/bar/
Object: foo/bar/3.txt
Object: foo/bar/oss.jpg
SubDir: foo/hello/
Object: foo/hello/
Object: foo/hello/001.avi
Object: foo/hello/007.avi
Object: foo/            

Referensi

Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mendaftarkan objek, lihat GetBucket (ListObjects).