すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:シンボリックリンクの管理 (Swift SDK)

最終更新日:Nov 30, 2025

シンボリックリンク機能を使用すると、バケット内で頻繁に使用するファイルに簡単にアクセスできます。シンボリックリンクを作成すると、Windows のショートカットと同様に、それを使用してファイルを開くことができます。このトピックでは、OSS Swift SDK を使用してシンボリックリンクを作成および取得する方法について説明します。

注意事項

  • このトピックのサンプルコードでは、中国 (杭州) リージョンの ID cn-hangzhou を例として使用します。このコードでは、デフォルトでパブリックエンドポイントを使用します。同じリージョン内の他の Alibaba Cloud プロダクトから Object Storage Service (OSS) にアクセスするには、内部エンドポイントを使用します。OSS がサポートするリージョンとエンドポイントのマッピングに関する詳細については、「リージョンとエンドポイント」をご参照ください。

  • シンボリックリンクを作成するには、oss:PutObject 権限が必要です。シンボリックリンクを取得するには、oss:GetObject 権限が必要です。詳細については、「RAM ユーザーへのカスタム権限の付与」をご参照ください。

サンプルコード

シンボリックリンクの作成

次のコードを使用して、シンボリックリンクを作成できます。

import AlibabaCloudOSS
import Foundation

@main
struct Main {
    static func main() async {
        do {
            // バケットが配置されているリージョンを指定します。例:中国 (杭州) は cn-hangzhou です。
            let region = "cn-hangzhou"
            // バケット名を指定します。
            let bucket = "yourBucketName"
            // オプション。OSS にアクセスするためのドメイン名を指定します。たとえば、中国 (杭州) リージョンの場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
            let endpoint: String? = nil
            // 作成するシンボリックリンクの名前を指定します。例:symlink.txt。
            let key = "yourSymlinkName"
            // シンボリックリンクのターゲットオブジェクトのパスを指定します。例:/path/to/target.txt。
            let symlinkTarget = "yourTargetObjectPath"

            // 認証情報プロバイダーを初期化します。環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET が使用されます。
            let credentialsProvider = EnvironmentCredentialsProvider()

            // OSS クライアントのパラメーターを設定します。
            let config = Configuration.default()
                .withRegion(region)        // バケットが配置されているリージョンを設定します。
                .withCredentialsProvider(credentialsProvider)  // アクセス認証情報を設定します。
                
            // エンドポイントを設定します。
            if let endpoint = endpoint {
                config.withEndpoint(endpoint)
            }

            // OSS クライアントインスタンスを作成します。
            let client = Client(config)

            // シンボリックリンクを作成します。
            let result = try await client.putSymlink(
                PutSymlinkRequest(
                    bucket: bucket,
                    key: key,
                    symlinkTarget: symlinkTarget
                )
            )
            print("result:\n\(result)")

        } catch {
            // エラーメッセージを出力して続行します。
            print("error: \(error)")
        }
    }
}

シンボリックリンクの取得

次のコードを使用して、シンボリックリンクとそのターゲットオブジェクトの名前を取得できます。

import AlibabaCloudOSS
import Foundation

@main
struct Main {
    static func main() async {

        do {
            // バケットが配置されているリージョンを指定します。例:中国 (杭州) は cn-hangzhou です。
            let region = "cn-hangzhou" // 実際のリージョン ID に置き換えてください。
            // バケット名を指定します。
            let bucket = "yourBucketName" // 実際のバケット名に置き換えてください。
            // オプション。OSS にアクセスするためのドメイン名を指定します。たとえば、中国 (杭州) リージョンの場合、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
            let endpoint: String? = nil
            // シンボリックリンクの名前を指定します。例:document.txt。
            let key = "yourObjectName" // 実際のシンボリックリンクの名前に置き換えてください。

            // 認証情報プロバイダーを初期化します。環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET が使用されます。
            let credentialsProvider = EnvironmentCredentialsProvider()

            // OSS クライアントのパラメーターを設定します。
            let config = Configuration.default()
                .withRegion(region)        // バケットが配置されているリージョンを設定します。
                .withCredentialsProvider(credentialsProvider)  // アクセス認証情報を設定します。
                
            // エンドポイントを設定します。
            if let endpoint = endpoint {
                config.withEndpoint(endpoint)
            }
            
            // OSS クライアントインスタンスを作成します。
            let client = Client(config)

            // シンボリックリンクを取得します。
            let result = try await client.getSymlink(
                GetSymlinkRequest(
                    bucket: bucket,
                    key: key
                )
            )
            print("result:\n\(result)")

        } catch {
            // エラーメッセージを出力して続行します。
            print("error: \(error)")
        }
    }
}

リファレンス

  • シンボリックリンクの完全なサンプルコードについては、GitHub のサンプル put_symlink および get_symlink をご参照ください。

  • シンボリックリンクの操作に関する詳細については、「シンボリックリンク」をご参照ください。

  • シンボリックリンクを作成する API 操作に関する詳細については、「PutSymlink」をご参照ください。

  • シンボリックリンクを取得する API 操作に関する詳細については、「GetSymlink」をご参照ください。