全部产品
Search
文档中心

Object Storage Service:Akses waktu nyata untuk objek Arsip (OSS SDK untuk PHP V2)

更新时间:Nov 09, 2025

Topik ini menjelaskan cara menggunakan Object Storage Service (OSS) SDK untuk PHP V2 untuk mengaktifkan atau menonaktifkan fitur akses waktu nyata untuk objek Arsip pada sebuah bucket.

Catatan penggunaan

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

Kode contoh

Aktifkan akses real-time untuk objek Arsip di bucket

Anda dapat menggunakan kode berikut untuk mengaktifkan fitur akses waktu nyata untuk objek Arsip pada sebuah bucket.

<?php

// Impor file autoloader untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah diperlukan. Ini adalah wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Endpoint bersifat opsional. Ini adalah nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket diperlukan.
];

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

// Uraikan argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen yang diperlukan hilang.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna bahwa argumen yang diperlukan tidak ada.
        exit(1);
    }
}

// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat kredensial, termasuk ID AccessKey dan Rahasia AccessKey, dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

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

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

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

// Jika endpoint disediakan, tetapkan endpoint.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

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

// Buat objek permintaan untuk mengaktifkan fitur akses waktu nyata untuk objek Arsip pada bucket.
$request = new Oss\Models\PutBucketArchiveDirectReadRequest(
    bucket: $bucket, // Nama bucket.
    archiveDirectReadConfiguration: new Oss\Models\ArchiveDirectReadConfiguration(
        enabled: true // Aktifkan fitur akses waktu nyata untuk objek Arsip.
    )
);

// Panggil metode putBucketArchiveDirectRead untuk mengaktifkan fitur akses waktu nyata untuk objek Arsip pada bucket.
$result = $client->putBucketArchiveDirectRead($request);

// Cetak hasilnya.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP dari tanggapan.
    'request id:' . $result->requestId               // ID unik dari permintaan.
);

Periksa apakah akses real-time ke objek Arsip diaktifkan untuk bucket

Anda dapat menggunakan kode berikut untuk memeriksa apakah fitur akses waktu nyata untuk objek Arsip diaktifkan untuk sebuah bucket.

<?php

// Impor file autoloader untuk memuat dependensi.
require_once __DIR__ . '/../vendor/autoload.php';

use AlibabaCloud\Oss\V2 as Oss;

// Tentukan deskripsi untuk argumen baris perintah.
$optsdesc = [
    "region" => ['help' => 'Wilayah tempat bucket berada.', 'required' => True], // Wilayah diperlukan. Ini adalah wilayah tempat bucket berada.
    "endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Endpoint bersifat opsional. Ini adalah nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
    "bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket diperlukan.
];

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

// Uraikan argumen baris perintah.
$options = getopt("", $longopts);

// Periksa apakah argumen yang diperlukan hilang.
foreach ($optsdesc as $key => $value) {
    if ($value['required'] === True && empty($options[$key])) {
        $help = $value['help'];
        echo "Error: argumen berikut diperlukan: --$key, $help"; // Beri tahu pengguna bahwa argumen yang diperlukan tidak ada.
        exit(1);
    }
}

// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.

// Muat kredensial, termasuk ID AccessKey dan Rahasia AccessKey, dari variabel lingkungan.
$credentialsProvider = new Oss\Credentials\EnvironmentVariableCredentialsProvider();

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

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

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

// Jika endpoint disediakan, tetapkan endpoint.
if (isset($options["endpoint"])) {
    $cfg->setEndpoint($options["endpoint"]);
}

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

// Buat objek permintaan untuk mendapatkan konfigurasi fitur akses waktu nyata untuk objek Arsip pada bucket.
$request = new Oss\Models\GetBucketArchiveDirectReadRequest(
    bucket: $bucket // Nama bucket.
);

// Panggil metode getBucketArchiveDirectRead untuk mendapatkan konfigurasi fitur akses waktu nyata untuk objek Arsip pada bucket.
$result = $client->getBucketArchiveDirectRead($request);

// Cetak hasilnya.
printf(
    'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP dari tanggapan.
    'request id:' . $result->requestId . PHP_EOL .   // ID unik dari permintaan.
    'konfigurasi akses langsung arsip:' . var_export($result->archiveDirectReadConfiguration->enabled, true) . PHP_EOL // Status yang menunjukkan apakah fitur akses waktu nyata untuk objek Arsip diaktifkan.
);

Referensi

  • Untuk kode contoh lengkap untuk mengaktifkan fitur akses waktu nyata untuk objek Arsip pada sebuah bucket, lihat Contoh GitHub.

  • Untuk informasi lebih lanjut tentang operasi API untuk mengaktifkan fitur akses waktu nyata untuk objek Arsip pada sebuah bucket, lihat PutBucketArchiveDirectRead.

  • Untuk informasi lebih lanjut tentang operasi API untuk memeriksa apakah fitur akses waktu nyata untuk objek Arsip diaktifkan pada sebuah bucket, lihat GetBucketArchiveDirectRead.