Saat objek diunggah ke bucket Object Storage Service (OSS), URL yang mencakup titik akhir publik bucket akan dibuat secara otomatis. Untuk mengakses objek tersebut melalui nama domain kustom, Anda perlu menambahkan record CNAME untuk memetakan nama domain kustom ke bucket tempat objek disimpan.
Catatan
Untuk mengakses sumber daya dalam bucket dari layanan Alibaba Cloud lainnya di wilayah yang sama, gunakan titik akhir internal. Untuk detail tentang wilayah dan titik akhir yang didukung, lihat Wilayah dan Titik Akhir.
Contoh kode
Membuat token CNAME
Berikut adalah contoh kode untuk membuat token CNAME:
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSSClient.
$client = new Oss\Client($cfg);
// Buat objek permintaan dengan parameter yang diperlukan untuk membuat token CNAME.
$request = new Oss\Models\CreateCnameTokenRequest(
bucket: $bucket, // Nama bucket.
bucketCnameConfiguration: new Oss\Models\BucketCnameConfiguration(
cname: new Oss\Models\Cname(
domain: 'example.com' // Nama domain kustom.
)
)
);
// Panggil metode createCnameToken untuk membuat token CNAME.
$result = $client->createCnameToken($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId . PHP_EOL . // ID unik dari permintaan.
'cname token:' . var_export($result->cnameToken, true) . PHP_EOL // Token CNAME yang dihasilkan.
);
Mengambil token CNAME
Berikut adalah contoh kode untuk mengambil token CNAME:
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSS client.
$client = new Oss\Client($cfg);
// Buat objek permintaan dengan parameter yang diperlukan untuk mengquery token CNAME.
$request = new Oss\Models\GetCnameTokenRequest(
bucket: $bucket, // Nama bucket.
cname: 'example.com' // Nama domain kustom.
);
// Panggil metode getCnameToken untuk mengquery token CNAME.
$result = $client->getCnameToken($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId . PHP_EOL . // ID unik dari permintaan.
'cname token:' . var_export($result->cnameToken, true) . PHP_EOL // Token CNAME yang diambil.
);
Konfigurasikan record CNAME
Petakan nama domain kustom
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSS client.
$client = new Oss\Client(config: $cfg);
// Buat objek permintaan dengan parameter yang diperlukan untuk memetakan nama domain kustom ke bucket.
$request = new Oss\Models\PutCnameRequest(
bucket: $bucket, // Nama bucket.
bucketCnameConfiguration: new Oss\Models\BucketCnameConfiguration(
cname: new Oss\Models\Cname(
domain: 'example.com' // Nama domain kustom.
)
)
);
// Panggil metode putCname untuk memetakan nama domain kustom.
$result = $client->putCname($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId // ID unik dari permintaan.
);
Petakan nama domain kustom dan asosiasikan sertifikat
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
$request = new Oss\Models\PutCnameRequest(
bucket: $bucketName, // Nama bucket.
bucketCnameConfiguration: new Oss\Models\BucketCnameConfiguration(
cname: new Oss\Models\Cname(
domain: 'www.example.com', // Tentukan nama domain kustom.
certificateConfiguration: new Oss\Models\CertificateConfiguration(
force: true, // Tentukan apakah akan memaksa menimpa sertifikat.
certId: '92******-cn-hangzhou', // Tentukan ID sertifikat.
certificate: '-----BEGIN CERTIFICATE-----MIIFBzCCA++gT2H2hT6Wb3nwxjpLIfXmSVcV*****-----END CERT', // Tentukan konten sertifikat.
privateKey: '-----BEGIN CERTIFICATE-----MIIFBzCCA++gT2H2hT6Wb3nwxjpLIfXmSVcV*****-----END CERTIFICATE-----' // Tentukan konten kunci privat.
)
)
)
);
// Panggil metode putCname untuk memetakan nama domain kustom ke bucket.
$result = $client->putCname($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId // ID unik dari permintaan.
);
Hapus asosiasi sertifikat
Anda dapat menghapus asosiasi sertifikat dari nama domain jika sertifikat tidak lagi diperlukan.
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat objek permintaan dengan parameter yang diperlukan untuk menghapus asosiasi sertifikat.
$request = new Oss\Models\PutCnameRequest(
bucket: $bucketName, // Nama bucket.
bucketCnameConfiguration: new Oss\Models\BucketCnameConfiguration(
cname: new Oss\Models\Cname(
domain: 'www.example.com', // Tentukan nama domain kustom.
certificateConfiguration: new Oss\Models\CertificateConfiguration(
deleteCertificate: true // Hapus asosiasi sertifikat.
)
)
)
);
// Panggil metode putCname untuk memetakan nama domain kustom ke bucket.
$result = $client->putCname($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId // ID unik dari permintaan.
);
Daftar record CNAME
Berikut adalah contoh kode untuk mendaftarkan record CNAME yang terkait dengan bucket:
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSS client.
$client = new Oss\Client($cfg);
// Buat objek permintaan dengan parameter yang diperlukan untuk mendaftarkan nama domain kustom yang dipetakan ke bucket.
$request = new Oss\Models\ListCnameRequest(
bucket: $bucket // Nama bucket.
);
// Panggil metode listCname untuk mendaftarkan nama domain kustom yang dipetakan ke bucket.
$result = $client->listCname($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId . PHP_EOL . // ID unik dari permintaan.
'cnames:' . var_export($result->cnames, true) . PHP_EOL // Daftar nama domain kustom yang dipetakan ke bucket.
);
Hapus record CNAME
Berikut adalah contoh kode untuk menghapus record CNAME:
<?php
// Impor file autoload untuk memuat pustaka dependensi.
require_once __DIR__ . '/../vendor/autoload.php';
use AlibabaCloud\Oss\V2 as Oss;
// Tentukan argumen 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 untuk mengakses OSS dari layanan lain.
"bucket" => ['help' => 'Nama bucket', 'required' => True], // (Diperlukan) Identifikasi bucket target dengan namanya.
];
// Hasilkan daftar opsi panjang untuk penguraian argumen baris perintah.
$longopts = \array_map(function ($key) {
return "$key:"; // Tanda titik dua (:) setelah setiap parameter menunjukkan bahwa parameter tersebut diperlukan.
}, array_keys($optsdesc));
// Uraikan argumen baris perintah.
$options = getopt("", $longopts);
// Validasi parameter yang diperlukan.
foreach ($optsdesc as $key => $value) {
if ($value['required'] === True && empty($options[$key])) {
$help = $value['help'];
echo "Error: argumen berikut diperlukan: --$key, $help"; // Menentukan bahwa parameter yang diperlukan belum dikonfigurasi.
exit(1);
}
}
// Dapatkan nilai argumen baris perintah.
$region = $options["region"]; // Wilayah tempat bucket berada.
$bucket = $options["bucket"]; // Nama bucket.
// Muat ID AccessKey dan Rahasia AccessKey dari variabel lingkungan.
$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 ada yang diberikan.
if (isset($options["endpoint"])) {
$cfg->setEndpoint($options["endpoint"]);
}
// Buat instance OSS client.
$client = new Oss\Client($cfg);
// Buat objek permintaan dengan parameter yang diperlukan untuk menghapus record CNAME.
$request = new Oss\Models\DeleteCnameRequest(
bucket: $bucket, // Nama bucket.
bucketCnameConfiguration: new Oss\Models\BucketCnameConfiguration(
cname: new Oss\Models\Cname(
domain: 'example.com' // Record CNAME untuk dihapus.
)
)
);
// Panggil metode deleteCname untuk menghapus record CNAME.
$result = $client->deleteCname($request);
// Keluarkan hasilnya.
printf(
'status code:' . $result->statusCode . PHP_EOL . // Kode status HTTP.
'request id:' . $result->requestId // ID unik dari permintaan.
);
Referensi
Untuk informasi lebih lanjut tentang API terkait, lihat topik-topik berikut: