Topik ini menjelaskan cara menggunakan OSS SDK untuk PHP V2 untuk mengelola fitur Block Public Access di tingkat bucket.
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 sebuah 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.
Kode contoh
Aktifkan Block Public Access untuk sebuah bucket
Berikut adalah kode contoh yang menunjukkan cara mengaktifkan Block Public Access untuk sebuah bucket.
<?php
// Impor file autoloader untuk memuat pustaka dependensi.
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 adalah argumen wajib. Wilayah tempat bucket berada.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir adalah argumen opsional. Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket adalah argumen wajib.
];
// Hasilkan daftar opsi panjang untuk mengurai argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Periksa apakah argumen wajib telah ditentukan.
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 wajib hilang.
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 titik akhir disediakan, tetapkan titik akhir.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instans klien OSS.
$client = new Oss\Client($cfg);
// Bangun objek PutBucketPublicAccessBlockRequest untuk menetapkan konfigurasi Block Public Access untuk bucket.
$request = new Oss\Models\PutBucketPublicAccessBlockRequest(
bucket: $bucket,
publicAccessBlockConfiguration: new Oss\Models\PublicAccessBlockConfiguration(blockPublicAccess: true) // Konfigurasikan untuk memblokir akses publik.
);
// Panggil metode putBucketPublicAccessBlock untuk menetapkan konfigurasi Block Public Access untuk bucket dan terima hasilnya.
$result = $client->putBucketPublicAccessBlock($request);
// Cetak hasilnya, termasuk kode status dan ID permintaan.
printf(
'kode status:' . $result->statusCode . PHP_EOL .
'ID permintaan:' . $result->requestId
);
Dapatkan Konfigurasi Block Public Access dari bucket tertentu
Berikut adalah kode contoh yang menunjukkan cara mendapatkan konfigurasi Block Public Access dari sebuah bucket.
<?php
// Impor file autoloader untuk memuat pustaka dependensi.
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 adalah argumen wajib. Wilayah tempat bucket berada.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir adalah argumen opsional. Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket adalah argumen wajib.
];
// Hasilkan daftar opsi panjang untuk mengurai argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Periksa apakah argumen wajib telah ditentukan.
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 wajib hilang.
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 titik akhir disediakan, tetapkan titik akhir.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instans klien OSS.
$client = new Oss\Client($cfg);
// Bangun objek GetBucketPublicAccessBlockRequest untuk mendapatkan konfigurasi Block Public Access dari bucket.
$request = new Oss\Models\GetBucketPublicAccessBlockRequest(bucket: $bucket);
// Panggil metode getBucketPublicAccessBlock untuk mendapatkan konfigurasi Block Public Access dari bucket dan terima hasilnya.
$result = $client->getBucketPublicAccessBlock($request);
// Cetak hasilnya, termasuk kode status, ID permintaan, dan konfigurasi Block Public Access.
printf(
'kode status:' . $result->statusCode . PHP_EOL .
'ID permintaan:' . $result->requestId . PHP_EOL .
'konfigurasi blokir akses publik bucket:' . var_export($result->publicAccessBlockConfiguration, true)
);
Hapus konfigurasi Block Public Access dari bucket tertentu
Berikut adalah kode contoh yang menunjukkan cara menghapus konfigurasi Block Public Access dari bucket tertentu.
<?php
// Impor file autoloader untuk memuat pustaka dependensi.
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 adalah argumen wajib. Wilayah tempat bucket berada.
"endpoint" => ['help' => 'Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.', 'required' => False], // Titik akhir adalah argumen opsional. Nama domain yang dapat digunakan layanan lain untuk mengakses OSS.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // Nama bucket adalah argumen wajib.
];
// Hasilkan daftar opsi panjang untuk mengurai argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tambahkan titik dua setelah setiap parameter untuk menunjukkan bahwa nilai diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Periksa apakah argumen wajib telah ditentukan.
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 wajib hilang.
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 titik akhir disediakan, tetapkan titik akhir.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instans klien OSS.
$client = new Oss\Client($cfg);
// Bangun objek DeleteBucketPublicAccessBlockRequest untuk menghapus konfigurasi Block Public Access dari bucket.
$request = new Oss\Models\DeleteBucketPublicAccessBlockRequest(bucket: $bucket);
// Panggil metode deleteBucketPublicAccessBlock untuk menghapus konfigurasi Block Public Access dari bucket dan terima hasilnya.
$result = $client->deleteBucketPublicAccessBlock($request);
// Cetak hasilnya, termasuk kode status dan ID permintaan.
printf(
'kode status:' . $result->statusCode . PHP_EOL .
'ID permintaan:' . $result->requestId
);
Referensi
Untuk kode contoh lengkap yang menunjukkan cara mengelola Block Public Access untuk sebuah bucket, lihat Github.
Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk mengaktifkan Block Public Access untuk sebuah bucket, lihat PutBucketPublicAccessBlock.
Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk mengambil konfigurasi Block Public Access dari sebuah bucket, lihat GetBucketPublicAccessBlock.
Untuk informasi lebih lanjut tentang operasi API yang digunakan untuk menghapus konfigurasi Block Public Access dari sebuah bucket, lihat DeleteBucketPublicAccessBlock.