Topik ini menjelaskan cara menentukan apakah sebuah objek ada 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 dalam bucket. Jika Anda ingin mengakses sumber daya dalam 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 mengunduh sebuah objek, Anda harus memiliki izin
oss:GetObject. Untuk informasi lebih lanjut, lihat Berikan Kebijakan Akses Kustom kepada Pengguna RAM.
Kode contoh
Anda dapat menggunakan kode berikut untuk menentukan apakah sebuah file ada.
<?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. (Diperlukan)
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir. (Opsional)
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket. (Diperlukan)
"key" => ['help' => 'Nama objek', 'required' => True], // Nama objek. (Diperlukan)
];
// Ubah deskripsi argumen menjadi 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));
// Parsing argumen baris perintah.
$options = getopt("", $longopts);
// Otentikasi apakah parameter yang diperlukan telah ditentukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help']; // Dapatkan informasi bantuan dari parameter.
echo "Error: argumen berikut diperlukan: --$key, $help" . PHP_EOL;
exit(1); // Jika parameter yang diperlukan tidak ada, keluar dari program.
}
}
// Ambil nilai dari parameter yang telah diparsing.
$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);
// Periksa apakah objek ada.
$exist = $client->isObjectExist(bucket: $bucket, key: $key);
// Cetak hasil pemeriksaan.
printf(
'objek ada:' . var_export($exist, true) . PHP_EOL // Keluarkan nilai Boolean yang menunjukkan apakah objek ada.
);
Referensi
Untuk kode contoh lengkap yang digunakan untuk menentukan apakah sebuah file ada, lihat GitHub.
Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk menentukan apakah sebuah file ada, lihat IsObjectExist.