软链接功能用于快速访问存储空间(Bucket)内的常用文件(Object)。设置软链接后,您可以通过软链接文件快速打开源文件。

创建软链接

以下代码用于创建软链接:

// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 填写Bucket名称。关于Bucket名称命名规范的更多信息,请参见Bucket。
String bucketName = "yourBucketName";
// 指定软链接名称。
String symLink = "yourSymLink";
// 指定软链接指向的目标Object名称。有关Object名称命名规范的更多信息,请参见Object。
String destinationObjectName = "yourDestinationObjectName";

// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 创建上传文件元信息。
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentType("text/plain");
// 设置自定义元信息property的值为property-value。
metadata.addUserMetadata("property", "property-value");

// 指定创建软链接时是否覆盖同名Object。
// metadata.setHeader("x-oss-forbid-overwrite", "true");
// 指定Object的访问权限。
// metadata.setHeader(OSSHeaders.OSS_OBJECT_ACL, CannedAccessControlList.Default);
// 指定Object的存储类型。
// metadata.setHeader(OSSHeaders.OSS_STORAGE_CLASS, StorageClass.Standard);

// 创建CreateSymlinkRequest。
CreateSymlinkRequest createSymlinkRequest = new CreateSymlinkRequest(bucketName, symLink, destinationObjectName);

// 设置元信息。
createSymlinkRequest.setMetadata(metadata);

// 创建软链接。
ossClient.createSymlink(createSymlinkRequest);

// 关闭OSSClient。
ossClient.shutdown();
            

获取软链接

获取软链接要求您对该软链接有读权限。以下代码用于获取软链接以及软链接指向的目标文件名称:

// Endpoint以杭州为例,其它Region请按实际情况填写。
String endpoint = "https://oss-cn-hangzhou.aliyuncs.com";
// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
String accessKeyId = "yourAccessKeyId";
String accessKeySecret = "yourAccessKeySecret";
// 填写Bucket名称。
String bucketName = "yourBucketName";
// 填写软链接名称。
String symLink = "yourSymLink";

// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

// 获取软链接以及软链接指向的目标文件名称。
OSSSymlink symbolicLink = ossClient.getSymlink(bucketName, symLink);
System.out.println(symbolicLink.getSymlink());
System.out.println(symbolicLink.getTarget());
System.out.println(symbolicLink.getRequestId());

// 关闭OSSClient。
ossClient.shutdown();            

相关文档

  • 关于创建软链接的API接口说明,请参见PutSymlink
  • 关于获取软链接的API接口说明,请参见GetSymlink