全部产品
Search
文档中心

Object Storage Service:Kueri wilayah bucket menggunakan OSS SDK untuk PHP 2.0

更新时间:Aug 07, 2025

Topik ini menjelaskan cara mengkueri wilayah sebuah bucket.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan ID wilayah cn-hangzhou dari 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.