软链接功能用于快速访问对象存储空间内的常用文件。设置软链接后,您可以通过软链接文件快速打开源文件,类似于Windows的快捷方式。本文介绍如何在受版本控制的存储空间(Bucket)中管理软链接。
创建软链接
软链接本身也可以有多个版本,每个不同的版本可以指向不同的TargetObject,版本ID由OSS自动生成,在响应header中返回x-oss-version-id。您可以通过创建软链接指向TargetObject的当前版本。
说明 在受版本控制的Bucket中,无法为删除标记(Delete Marker)创建软链接。
以下代码用于创建软链接:
using Aliyun.OSS;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
var targetObjectName = "<yourTargetObjectName>";
var symlinkObjectName = "<yourSymlinkObjectName>";
var objectContent = "More than just cloud.";
// 创建OssClient实例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// 上传TargetObject。
byte[] binaryData = Encoding.ASCII.GetBytes(objectContent);
MemoryStream requestContent = new MemoryStream(binaryData);
client.PutObject(bucketName, targetObjectName, requestContent);
// 创建软链接。
client.CreateSymlink(bucketName, symlinkObjectName, targetObjectName);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
创建软链接的详细信息请参见PutSymlink。
获取软链接
GetSymlink接口默认获取软链接的当前版本。允许通过指定versionId来获取指定版本。如果软链接的当前版本为删除标记,OSS会返回404 Not Found,在响应header中返回x-oss-delete-marker = true以及版本ID : x-oss-version-id。
说明 获取软链接操作需要您对该软链接有读权限。
以下代码用于获取软链接:
using Aliyun.OSS;
var endpoint = "<yourEndpoint>";
var accessKeyId = "<yourAccessKeyId>";
var accessKeySecret = "<yourAccessKeySecret>";
var bucketName = "<yourBucketName>";
var symlinkObjectName = "<yourSymlinkObjectName>";
var versionid = "<yourArchiveObjectVersionid>";
// 创建OssClient实例。
var client = new OssClient(endpoint, accessKeyId, accessKeySecret);
try
{
// 获取软链接指向的目标文件名称。
var request = new GetSymlinkRequest(bucketName, symlinkObjectName)
{
// 获取指定版本的软链接的内容。
VersionId = versionid
};
var ossSymlink = client.GetSymlink(request);
Console.WriteLine("Target object is {0}", ossSymlink.Target);
}
catch (Exception ex)
{
Console.WriteLine("Failed with error info: {0}", ex.Message);
}
获取软链接的详细信息请参见GetSymlink。