本文介绍如何创建软链接并获取软链接指向的目标文件(Object)名称。

创建软链接

软链接是一种特殊的文件,它指向某个具体的文件,类似于Windows上使用的快捷方式。软链接支持自定义元信息。

以下代码用于为examplebucket中的exampleobject.txt文件创建名为examplesymlink的软链接。

OSSPutSymlinkRequest *request = [OSSPutSymlinkRequest new];
// 填写Bucket名称。
request.bucketName = @"examplebucket";
// 填写软链接名称。
request.objectKey = @"examplesymlink";
// 填写软链接指定的Object完整路径。Object完整路径中不能包含Bucket名称。
request.targetObjectName = @"exampleobject.txt";

OSSTask *putSymlinkTask = [client putSymlink:request];
[putSymlinkTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (!task.error) {
        NSLog(@"put symlink success");
    } else {
        NSLog(@"put symlink failed, error: %@", task.error);
    }
    return nil;
}];

获取软链接指向的目标文件名称

获取软链接要求您对该软链接具有读权限。

以下代码用于获取examplebucket存储空间中软链接examplesymlink指向的目标文件名称。

OSSGetSymlinkRequest *request = [OSSGetSymlinkRequest new];
// 填写Bucket名称。
request.bucketName = @"examplebucket";
// 填写软链接名称。
request.objectKey = @"examplesymlink";

OSSTask *getSymlinkTask = [client getSymlink:request];
[getSymlinkTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
    if (!task.error) {
        OSSGetSymlinkResult *result = task.result;
        NSLog(@"get symlink: %@", result.httpResponseHeaderFields[@"x-oss-symlink-target"]);
    } else {
        NSLog(@"get symlink failed, error: %@", task.error);
    }
    return nil;
}];

关于获取软链接的更多信息, 请参见GetSymlink