Topik ini menjelaskan cara mendapatkan penanda objek menggunakan OSS SDK untuk PHP 2.0.
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 dari layanan Alibaba Cloud lainnya di wilayah yang sama dengan bucket tersebut, gunakan titik akhir internal. Untuk informasi lebih lanjut tentang wilayah dan titik akhir yang didukung oleh OSS, lihat Wilayah dan Titik Akhir.Untuk mendapatkan penanda objek, Anda harus memiliki izin
oss:GetObjectTagging. Untuk informasi lebih lanjut, lihat Memberikan Izin Kustom kepada Pengguna RAM.
Pasangan kunci-nilai digunakan untuk mengidentifikasi objek. Untuk informasi lebih lanjut tentang penandaan objek, lihat Penandaan Objek.
Untuk informasi lebih lanjut tentang mendapatkan penanda objek, lihat GetObjectTagging.
Kode contoh
Berikut adalah kode contoh yang menunjukkan cara meminta tag versi tertentu dari sebuah objek dalam bucket:
<?php
// Impor file autoloader untuk memastikan bahwa library dependensi dimuat dengan benar.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan deskripsi argumen baris perintah.
$optsdesc = [
"region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah tempat bucket berada. Parameter ini wajib.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir yang dapat digunakan layanan lain untuk mengakses OSS. Parameter ini opsional.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. Parameter ini wajib.
"key" => ['help' => 'Nama objek', 'required' => True], // Nama objek. Parameter ini wajib.
];
// Konversikan deskripsi argumen ke format opsi panjang yang diperlukan oleh getopt.
// Tanda titik dua (:) setelah setiap argumen menunjukkan bahwa argumen tersebut memerlukan nilai.
$longopts = \array_map(function ($key) {
return "$key:";
}, array_keys($optsdesc));
// Analisis argumen baris perintah.
$options = getopt("", $longopts);
// Periksa apakah argumen yang diperlukan telah ditentukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan untuk argumen tersebut.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Jika argumen yang diperlukan tidak ditentukan, keluar dari program.
}
}
// Ekstrak nilai dari argumen yang telah dianalisis.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
$key = $options["key"]; // Nama objek.
// Muat kredensial dari variabel lingkungan.
// Gunakan EnvironmentVariableCredentialsProvider untuk membaca Access Key ID dan Access Key Secret dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();
// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();
$cfg->setCredentialsProvider($credentialsProvider); // Tetapkan penyedia kredensial.
$cfg->setRegion($region); // Tetapkan wilayah tempat bucket berada.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]); // Jika titik akhir disediakan, tetapkan titik akhir.
}
// Buat instans klien OSS.
$client = new Oss\Client($cfg);
// Buat objek GetObjectTaggingRequest untuk mendapatkan informasi tag dari objek.
$request = new Oss\Models\GetObjectTaggingRequest(
bucket: $bucket,
key: $key
);
// Jalankan operasi untuk mendapatkan tag objek.
$result = $client->getObjectTagging($request);
// Cetak hasil dari mendapatkan tag objek.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP. Misalnya, 200 menunjukkan bahwa permintaan berhasil.
'request id:' . $result->requestId . PHP_EOL . // ID permintaan, yang digunakan untuk debugging atau melacak permintaan.
'result:' . var_export($result, true) . PHP_EOL // Hasil rinci dari tag objek yang diperoleh.
);