全部产品
Search
文档中心

Object Storage Service:Pelacakan Akses (PHP SDK V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan SDK Object Storage Service (OSS) untuk PHP 2.0 dalam mengonfigurasi pelacakan akses untuk sebuah bucket.

Catatan penggunaan

  • Kode contoh dalam topik ini menggunakan ID Wilayah cn-hangzhou untuk Wilayah Hangzhou, Tiongkok. Secara default, titik akhir publik digunakan. Jika Anda ingin mengakses OSS menggunakan layanan Alibaba Cloud lainnya di wilayah yang sama, Anda dapat menggunakan titik akhir internal. Untuk informasi lebih lanjut tentang pemetaan antara wilayah dan titik akhir OSS, lihat Wilayah dan Titik Akhir.

Contoh

Aktifkan pelacakan akses

Berikut adalah kode contoh untuk mengaktifkan pelacakan akses pada sebuah bucket:

<?php

// Impor file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Uraikan 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"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
        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();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah.
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient.
$client = new Oss\Client($cfg);

// Buat objek AccessMonitorConfiguration untuk mengaktifkan pelacakan akses.
$accessMonitorConfiguration = new Oss\Models\AccessMonitorConfiguration(
    status: Oss\Models\AccessMonitorStatusType::ENABLED // Aktifkan pelacakan akses.
);

// Buat objek PutBucketAccessMonitorRequest untuk mengonfigurasi pelacakan akses untuk bucket dan lewati objek accessMonitorConfiguration.
$request = new Oss\Models\PutBucketAccessMonitorRequest(
    bucket: $bucket,
    accessMonitorConfiguration: $accessMonitorConfiguration
);

// Gunakan metode putBucketAccessMonitor untuk mengonfigurasi pelacakan akses untuk bucket.
$result = $client->putBucketAccessMonitor($request);

// Tampilkan hasil yang dikembalikan.
printf(
    'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
    'ID permintaan:' . $result->requestId // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
);

Periksa status pelacakan akses

Berikut adalah kode contoh untuk memeriksa status pelacakan akses sebuah bucket:

<?php

// Impor file autoload untuk memuat pustaka dependen.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk parameter baris perintah.
$optsdesc = [
    "region" => ['help' => Wilayah tempat bucket berada.', 'required' => True], // (Diperlukan) Tentukan wilayah tempat bucket berada.
    "endpoint" => ['help' => Nama domain yang dapat digunakan layanan lain untuk mengakses OSS', 'required' => False], // (Opsional) Tentukan titik akhir yang dapat digunakan oleh layanan lain untuk mengakses OSS.
    "bucket" => ['help' => Nama bucket, 'required' => True], // (Diperlukan) Tentukan nama bucket.
];

// Hasilkan daftar opsi panjang untuk mengurai parameter baris perintah.
$longopts = \array_map(function ($key) {
    return "$key:"; // Tambahkan titik dua (:) di akhir setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));

// Uraikan 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"; // Tentukan bahwa parameter yang diperlukan belum dikonfigurasi.
        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();

// Gunakan konfigurasi default dari SDK.
$cfg = Oss\Config::loadDefault();

// Tentukan penyedia kredensial.
$cfg->setCredentialsProvider($credentialsProvider);

// Tentukan wilayah.
$cfg->setRegion($region);

// Tentukan titik akhir jika titik akhir disediakan.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

// Buat instance OSSClient.
$client = new Oss\Client($cfg);

// Buat objek GetBucketAccessMonitorRequest untuk memeriksa status pelacakan akses bucket.
$request = new Oss\Models\GetBucketAccessMonitorRequest(bucket: $bucket);

// Gunakan metode getBucketAccessMonitor untuk memeriksa status pelacakan akses bucket.
$result = $client->GetBucketAccessMonitor($request);

// Tampilkan hasil yang dikembalikan.
printf(
    'kode status:' . $result->statusCode . PHP_EOL . // Kode status HTTP yang dikembalikan.
    'ID permintaan:' . $result->requestId . PHP_EOL . // ID permintaan dari permintaan, yang merupakan pengenal unik dari permintaan.
    status monitor akses:' . $result->accessMonitorConfiguration->status // Status pelacakan akses.
);

Referensi

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk mengaktifkan pelacakan akses, lihat PutBucketAccessMonitor.

  • Untuk informasi lebih lanjut tentang operasi API yang dapat Anda panggil untuk memeriksa status pelacakan akses, lihat GetBucketAccessMonitor.