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

创建软链接

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

package main

import (
    "fmt"
    "github.com/aliyun/aliyun-oss-go-sdk/oss"
    "os"
    "strings"
)


func main() {
    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret")
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 填写Bucket名称,例如examplebucket。
    bucketName := "examplebucket"
    // 指定软链接名称,例如examplesymlink。
    symObjectKey := "examplesymlink.txt"
    // 指定软链接指向的目标Object名称,例如exampleobject.txt。
    objectName := "exampleobject.txt"

    bucket, err := client.Bucket(bucketName)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 创建软链接。
    option := [] oss.Option{
        // 指定创建软链接时是否覆盖同名Object。
        oss.ForbidOverWrite(true),
        // 指定Object的访问权限。此处指定为Private,表示私有访问权限。
        oss.ObjectACL(oss.ACLPrivate),
        // 指定Object的存储类型。此处指定为Standard,表示标准存储类型。
        oss.StorageClass(oss.StorageStandard),

    }
    err = bucket.PutSymlink(symObjectKey,objectName ,option...)

    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

}

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

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

package main

import (
    "fmt"
    "os"
    "github.com/aliyun/aliyun-oss-go-sdk/oss"
)

func main() {
    // 创建OSSClient实例。
    // yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为https://oss-cn-hangzhou.aliyuncs.com。其它Region请按实际情况填写。
    // 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。
    client, err := oss.New("yourEndpoint", "yourAccessKeyId", "yourAccessKeySecret")
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 填写Bucket名称,例如examplebucket。
    bucketName := "examplebucket"
    // 填写软链接名称。
    symlinkName := "examplesymlink.txt"
   
    bucket, err := client.Bucket(bucketName)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }

    // 获取软链接指向的目标文件名称。
    meta, err := bucket.GetSymlink(symlinkName)
    if err != nil {
        fmt.Println("Error:", err)
        os.Exit(-1)
    }
    fmt.Println(meta.Get(oss.HTTPHeaderOssSymlinkTarget))
}            

相关文档

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