シンボリックリンクは、バケット内で頻繁に使用されるオブジェクトにアクセスするための便利な方法を提供します。シンボリックリンクを作成すると、Windows のショートカットと同様の方法でターゲットオブジェクトにアクセスできます。
注意事項
このトピックの例を使用する前に、カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する必要があります。詳細については、「初期化 (iOS SDK)」をご参照ください。
シンボリックリンクの作成
次のコードは、examplesymlink という名前のシンボリックリンクを作成する方法の例を示しています。このシンボリックリンクは、examplebucket バケット内の exampleobject.txt オブジェクトを指します。
OSSPutSymlinkRequest *request = [OSSPutSymlinkRequest new];
// バケット名を指定します。例: examplebucket。
request.bucketName = @"examplebucket";
// シンボリックリンクの名前を指定します。
request.objectKey = @"examplesymlink";
// シンボリックリンクが指すオブジェクトの完全なパスを指定します。完全なパスにバケット名を含めることはできません。
request.targetObjectName = @"exampleobject.txt";
OSSTask *putSymlinkTask = [client putSymlink:request];
[putSymlinkTask continueWithBlock:^id _Nullable(OSSTask * _Nonnull task) {
if (!task.error) {
NSLog(@"シンボリックリンクの作成に成功しました");
} else {
NSLog(@"シンボリックリンクの作成に失敗しました。エラー: %@", task.error);
}
return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [putSymlinkTask waitUntilFinished];シンボリックリンクの取得
シンボリックリンクが指すオブジェクトを取得するには、そのシンボリックリンクに対する読み取り権限が必要です。
次のコードは、examplesymlink シンボリックリンクが指すオブジェクトの名前を取得する方法を示しています。このシンボリックリンクは examplebucket バケット内にあります。
OSSGetSymlinkRequest *request = [OSSGetSymlinkRequest new];
// バケット名を指定します。例: examplebucket。
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(@"シンボリックリンクの取得: %@", result.httpResponseHeaderFields[@"x-oss-symlink-target"]);
} else {
NSLog(@"シンボリックリンクの取得に失敗しました。エラー: %@", task.error);
}
return nil;
}];
// 同期ブロッキングを実装して、タスクが完了するのを待ちます。
// [putSymlinkTask waitUntilFinished];関連ドキュメント
シンボリックリンクを作成する API 操作の詳細については、「PutSymlink」をご参照ください。
シンボリックリンクを取得する API 操作の詳細については、「GetSymlink」をご参照ください。
OSSClient インスタンスを初期化する方法の詳細については、「OSSClient インスタンスの初期化方法」をご参照ください。