Topik ini menjelaskan cara menentukan apakah sebuah bucket ada.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID wilayah
cn-hangzhoudari Wilayah (Hangzhou) Tiongkok. Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket melalui layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir Object Storage Service (OSS), lihat Wilayah dan Titik Akhir.Untuk menentukan apakah sebuah bucket ada, Anda harus memiliki izin
oss:GetBucketAcl. Untuk informasi lebih lanjut, lihat Melampirkan Kebijakan Kustom ke Pengguna RAM.
Contoh
Berikut adalah kode contoh yang menunjukkan cara menentukan apakah sebuah bucket ada:
<?php
require_once __DIR__ . '/../vendor/autoload.php'; // Memuat objek dan pustaka dependensi secara otomatis.
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan parameter baris perintah.
$optsdesc = [
"region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada. Contoh: oss-cn-hangzhou.
"endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
"bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
];
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan tanda titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Parsing parameter baris perintah.
$options = getopt("", $longopts);
// Periksa apakah parameter yang diperlukan telah dikonfigurasi.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Gunakan variabel lingkungan untuk memuat informasi kredensial (ID AccessKey dan Rahasia AccessKey).
$credentialsProvider=new Oss\Credentials\EnvironmentVariableCredentialsProvider(); // Dapatkan informasi kredensial dari variabel lingkungan.
// Gunakan konfigurasi default dari SDK.
$cfg=Oss\Config::loadDefault(); // Muat konfigurasi default dari SDK.
$cfg->setCredentialsProvider($credentialsProvider); // Tentukan penyedia kredensial.
$cfg->setRegion($region); // Tentukan wilayah.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Tentukan titik akhir jika titik akhir disediakan.
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg); // Buat instance OSSClient.
// Tentukan apakah bucket ada.
$exist = $client->isBucketExist($bucket); // Gunakan metode isBucketExist untuk menentukan apakah bucket ada.
// Tampilkan hasilnya.
printf(
'bucket is exist:' . var_export($exist, true) // Tampilkan apakah bucket ada. Nilai true menunjukkan bahwa bucket ada. Nilai false menunjukkan bahwa bucket tidak ada.
);
Referensi
Untuk kode contoh lengkap yang digunakan untuk menentukan apakah sebuah bucket ada, kunjungi GitHub.