シンボリックリンクはWindowsのファイルショートカットのように機能し、Object Storage Service (OSS) の関連オブジェクトにすばやくアクセスできます。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントを使用します。 OSSと同じリージョンにある他のAlibaba CloudサービスからOSSにアクセスする場合は、内部エンドポイントを使用します。 OSSリージョンとエンドポイントの詳細については、「リージョン、エンドポイント、オープンポート」をご参照ください。
このトピックでは、OSSエンドポイントを使用してOSSClientインスタンスを作成します。 カスタムドメイン名またはSecurity Token Service (STS) を使用してOSSClientインスタンスを作成する場合は、「OSSClientインスタンスの作成」をご参照ください。
シンボリックリンクを作成するには、
oss:PutObject
権限が必要です。 シンボリックリンクをクエリするには、oss:GetObject
権限が必要です。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。
シンボリックリンクの作成
次のサンプルコードは、シンボリックリンクを作成する方法の例を示しています。
<?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;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
$provider = new EnvironmentVariableCredentialsProvider();
// In this example, the endpoint of the China (Hangzhou) region is used. Specify the endpoint based on your business requirements.
$endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket. Example: examplebucket.
$bucket= "examplebucket";
// Specify the name of the object to which you want the symbolic link to point. Example: exampleobject.txt.
$object = "exampleobject.txt";
// Specify the name of the symbolic link. Example: examplesymlink.txt.
$symlink = "examplesymlink.txt";
$options[OssClient::OSS_HEADERS] = array(
// Specify whether to overwrite the object that has the same name as the symbolic link. In this example, this parameter is set to true, which indicates that the object with the same name cannot be overwritten.
'x-oss-forbid-overwrite'=>"true",
// Specify the ACL of the object. In this example, this parameter is set to private, which indicates that only the owner of the object and authorized users have read and write permissions on the object.
'x-oss-object-acl' =>"private",
// Specify the storage class of the object. In this example, the storage class is set to 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;
}
シンボリックリンクが指すオブジェクトの名前を照会する
シンボリックリンクを照会するには、シンボリックリンクの読み取り権限が必要です。 次のサンプルコードは、シンボリックリンクを照会する方法と、シンボリックリンクが指すオブジェクトの名前の例を示しています。
<?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;
// Obtain access credentials from environment variables. Before you run the sample code, make sure that the OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET environment variables are configured.
$provider = new EnvironmentVariableCredentialsProvider();
// In this example, the endpoint of the China (Hangzhou) region is used. Specify the endpoint based on your business requirements.
$endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
// Specify the name of the bucket.
$bucket= "examplebucket";
// Specify the name of the 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);
// Query the symbolic link and the name of the object to which the symbolic link points.
$Symlinks = $ossClient->getSymlink($bucket, $symlink);
} catch (OssException $e) {
printf(__FUNCTION__ . ": FAILED\n");
printf($e->getMessage() . "\n");
return;
}
print(__FUNCTION__ . ": OK" . "\n");
var_dump($Symlinks);
関連ドキュメント
シンボリックリンクの管理に使用する完全なサンプルコードについては、『GitHub』をご参照ください。
シンボリックリンクを作成するために呼び出すことができるAPI操作の詳細については、「PutSymlink」をご参照ください。
シンボリックリンクを照会するために呼び出すことができるAPI操作の詳細については、「GetSymlink」をご参照ください。