Symbolic link menyediakan cara praktis untuk mengakses objek yang sering digunakan dalam sebuah bucket. Setelah membuat symbolic link, Anda dapat menggunakannya seperti shortcut di Windows untuk mengakses objek target.
Catatan penggunaan
Topik ini menggunakan titik akhir publik wilayah China (Hangzhou). Untuk mengakses OSS dari layanan Alibaba Cloud lainnya dalam wilayah yang sama, gunakan titik akhir internal. Untuk detail mengenai wilayah dan titik akhir yang didukung, lihat Wilayah dan titik akhir.
Pada topik ini, instans OSSClient dibuat menggunakan titik akhir OSS. Jika ingin membuat instans OSSClient dengan nama domain kustom atau Security Token Service (STS), lihat Create an OssClient.
Untuk membuat symbolic link, Anda harus memiliki izin
oss:PutObject. Untuk mengambil symbolic link, Anda harus memiliki izinoss:GetObject. Untuk informasi selengkapnya, lihat Grant custom permissions to a RAM user.
Buat symbolic link
Kode berikut menunjukkan contoh cara membuat symbolic link:
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
$provider = new EnvironmentVariableCredentialsProvider();
// Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir sesuai wilayah Anda.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket. Misalnya, examplebucket.
$bucket= "examplebucket";
// Tentukan nama objek yang ditunjuk oleh symbolic link. Misalnya, exampleobject.txt.
$object = "exampleobject.txt";
// Tentukan nama symbolic link. Misalnya, examplesymlink.txt.
$symlink = "examplesymlink.txt";
$options[OssClient::OSS_HEADERS] = array(
// Tentukan apakah objek dengan nama yang sama boleh ditimpa. Pada contoh ini, nilai diatur ke true, yang berarti penimpaan dicegah.
'x-oss-forbid-overwrite'=>"true",
// Tentukan daftar kontrol akses (ACL) objek. Pada contoh ini, ACL diatur ke private, yang berarti hanya pemilik objek dan pengguna yang berwenang yang memiliki izin baca dan tulis.
'x-oss-object-acl' =>"private",
// Tentukan kelas penyimpanan objek. Pada contoh ini, kelas penyimpanan diatur ke Standard.
'x-oss-storage-class' =>"Standard"
);
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
$ossClient->putSymlink($bucket, $symlink, $object,$options);
} catch (OssException $e) {
printf($e->getMessage() . "\n");
return;
}Dapatkan objek target dari symbolic link
Untuk mengambil symbolic link, Anda harus memiliki izin baca terhadap symbolic link tersebut. Kode berikut menunjukkan contoh cara mengambil symbolic link dan nama file objek yang ditunjuknya:
<?php
if (is_file(__DIR__ . '/../autoload.php')) {
require_once __DIR__ . '/../autoload.php';
}
if (is_file(__DIR__ . '/../vendor/autoload.php')) {
require_once __DIR__ . '/../vendor/autoload.php';
}
use OSS\Credentials\EnvironmentVariableCredentialsProvider;
use OSS\OssClient;
use OSS\CoreOssException;
// Dapatkan kredensial akses dari variabel lingkungan. Sebelum menjalankan kode contoh, pastikan variabel lingkungan OSS_ACCESS_KEY_ID dan OSS_ACCESS_KEY_SECRET telah dikonfigurasi.
$provider = new EnvironmentVariableCredentialsProvider();
// Contoh ini menggunakan titik akhir wilayah China (Hangzhou). Ganti titik akhir sesuai wilayah Anda.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Tentukan nama bucket.
$bucket= "examplebucket";
// Tentukan nama symbolic link.
$symlink = "examplesymlink.txt";
try {
$config = array(
"provider" => $provider,
"endpoint" => $endpoint,
"signatureVersion" => OssClient::OSS_SIGNATURE_VERSION_V4,
"region"=> "cn-hangzhou"
);
$ossClient = new OssClient($config);
// Dapatkan symbolic link dan nama objek yang ditunjuk oleh symbolic link tersebut.
$Symlinks = $ossClient->getSymlink($bucket, $symlink);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
var_dump($Symlinks); Referensi
Untuk kode contoh lengkap mengenai symbolic link, lihat contoh GitHub.
Untuk informasi selengkapnya tentang operasi API untuk membuat symbolic link, lihat PutSymlink.
Untuk informasi selengkapnya tentang operasi API untuk mengambil symbolic link, lihat GetSymlink.