Topik ini menjelaskan cara mengkueri wilayah sebuah bucket.
Catatan penggunaan
Kode contoh dalam topik ini menggunakan ID wilayah
cn-hangzhoudari wilayah Tiongkok (Hangzhou). Secara default, titik akhir publik digunakan untuk mengakses sumber daya di bucket. Jika Anda ingin mengakses sumber daya di bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk informasi tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.Untuk mengkueri wilayah tempat bucket berada, Anda harus memiliki izin
oss:GetBucketLocation. Untuk informasi lebih lanjut, lihat Lampirkan Kebijakan Kustom ke Pengguna RAM.
Kode contoh
Berikut adalah kode contoh yang menunjukkan cara mengkueri wilayah sebuah bucket.
<?php
require_once __DIR__ . '/../vendor/autoload.php'; // Memuat file autoload untuk memuat pustaka dependensi.
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi parameter baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada wajib. Contoh: oss-cn-hangzhou.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // (Opsional) Titik akhir wilayah tempat bucket berada.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Wajib) 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"; // Tampilkan parameter yang diperlukan tetapi belum disediakan.
exit(1);
}
}
// Dapatkan nilai parameter baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Gunakan variabel lingkungan untuk memuat ID AccessKey dan Rahasia AccessKey.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider(); // Muat kredensial akses 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 disediakan.
}
// Buat instance klien OSS.
$client = new Oss\Client($cfg);
// Buat permintaan untuk mengkueri wilayah sebuah bucket.
$request = new Oss\Models\GetBucketLocationRequest($bucket);
// Panggil metode getBucketLocation.
$result = $client->getBucketLocation($request);
// Tampilkan hasilnya.
printf(
'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'ID permintaan:' . $result->requestId . PHP_EOL . // ID unik permintaan.
'lokasi bucket:' . var_export($result->location, true) // Wilayah tempat bucket berada.
);
Referensi
Untuk kode contoh lengkap yang digunakan untuk mengkueri wilayah sebuah bucket, kunjungi GitHub.
Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengkueri wilayah sebuah bucket, lihat GetBucketLocation.