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).