全部产品
Search
文档中心

Object Storage Service:Tentukan apakah sebuah objek ada menggunakan OSS SDK untuk PHP 2.0

更新时间:Oct 18, 2025

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-hangzhou dari 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.