Object Storage Service (OSS) menggunakan struktur datar alih-alih struktur hirarkis yang digunakan oleh sistem file tradisional untuk menyimpan objek. Semua data di OSS disimpan sebagai objek dalam bucket. Untuk memudahkan pengelolaan objek, konsol OSS menampilkan objek yang namanya diakhiri dengan garis miring (/) sebagai direktori. Direktori ini mirip dengan folder dalam sistem file dan dapat digunakan untuk mengatur serta mengelompokkan objek secara hierarkis, serta mempermudah kontrol akses.
Catatan
Pada topik ini, digunakan titik akhir publik wilayah China (Hangzhou). Jika Anda mengakses OSS melalui layanan Alibaba Cloud lain yang berada di wilayah yang sama dengan OSS, gunakan titik akhir internal. Untuk informasi selengkapnya mengenai wilayah dan titik akhir, lihat Wilayah dan titik akhir.
Dalam topik ini, kredensial akses diperoleh dari variabel lingkungan. Untuk informasi lebih lanjut tentang cara mengonfigurasi kredensial akses, lihat Konfigurasikan kredensial akses.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika Anda ingin membuat instans OSSClient menggunakan nama domain kustom atau Security Token Service (STS), lihat Inisialisasi.
Buat direktori
Berikut adalah contoh kode untuk membuat direktori:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"
# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Tentukan nama direktori. Nama direktori harus diakhiri dengan garis miring.
bucket.put_object('exampledir/', '')
Daftar direktori
Berikut adalah contoh kode untuk mendapatkan semua subdirektori di direktori root:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"
# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
# Daftar direktori
def list_directories(bucket, prefix='', delimiter='/'):
result = bucket.list_objects_v2(prefix=prefix, delimiter=delimiter)
directories = []
# Dapatkan direktori di tingkat saat ini.
for common_prefix in result.prefix_list:
directories.append(common_prefix)
return directories
# Panggil fungsi untuk mendapatkan semua subdirektori di direktori root.
directories = list_directories(bucket)
print("Daftar direktori:", directories)
Hapus direktori
Jika Anda menghapus sebuah direktori, subdirektori dan semua objek di dalamnya akan dihapus secara sinkron. Berhati-hatilah saat menghapus direktori.
Berikut adalah contoh kode untuk menghapus direktori bernama log dan semua objek di dalamnya dari examplebucket:
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Tentukan titik akhir untuk wilayah tempat bucket berada. Misalnya, jika bucket berada di wilayah Tiongkok (Hangzhou), atur titik akhir ke https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Tentukan ID wilayah yang sesuai dengan titik akhir. Contoh: cn-hangzhou. Parameter ini diperlukan jika Anda menggunakan algoritma tanda tangan V4.
region = "cn-hangzhou"
# Tentukan nama bucket Anda.
bucket = oss2.Bucket(auth, endpoint, "examplebucket", region=region)
prefix = "exampledir/"
# Hapus direktori dan semua objek yang tersimpan di dalamnya.
for obj in oss2.ObjectIterator(bucket, prefix=prefix):
bucket.delete_object(obj.key)
Topik terkait
Buat direktori
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk membuat direktori, lihat PutObject.
Hapus direktori
Untuk kode contoh lengkap untuk menghapus direktori dan semua objek yang tersimpan di dalamnya, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk menghapus direktori dan semua objek yang tersimpan di dalamnya, lihat DeleteObject.