快速开始.md 5.3 KB

快速开始

下面介绍如何使用OSS Go SDK来访问OSS服务,包括查看Bucket列表,查看文 件列表,上传/下载文件和删除文件。使用OSS Go SDK,需要引入oss包import github.com/aliyun/aliyun-oss-go-sdk/oss

初始化Client

初始化Client,即创建Client:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

提示:

  • Endpoint的是OSS的访问域名,如杭州数据中的访问域名是http://oss-cn-hangzhou.aliyuncs.com,更 详细的说明请参考OSS访问域名
  • AccessKeyId和AccessKeySecret是OSS的访问密钥。更详细的说明请参考OSS访问控制
  • 您运行示例程序时,请将Endpoint,AccessKeyId和AccessKeySecret替换成您的实际配置。

查看Bucket列表

通过Client.ListBuckets查看Bucket列表:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    lsRes, err := client.ListBuckets()
    if err != nil {
        // HandleError(err)
    } 

    for _, bucket := range lsRes.Buckets {
        fmt.Println("bucket:", bucket.Name)
    }

注:

  1. Bucket的命名规范请查看创建Bucket
  2. Bucket名字不能与OSS服务中其他用户已有的Bucket重复,所以你需要选择一个独 特的Bucket名字以避免创建失败

获取Bucket

Bucket的操作有Client的方法完成,如创建/删除Bucket、设置/清除Bucket的权限/生命周期/防盗链等,Object的操作有Bucket的方法完成,如上传/下载/删除文件、设置Object的访问权限等。用户可以通过Client.Bucket获取指定Bucket的操作句柄。

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }

查看文件列表

通过Bucket.ListObjects查看Bucket中的文件列表:

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

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }

    lsRes, err := bucket.ListObjects()
    if err != nil {
        // HandleError(err)
    }

    for _, object := range lsRes.Objects {
        fmt.Println("Object:", object.Key)
    }

上传文件

通过Bucket.PutObjectFromFile上传文件:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }
    
    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }
    
    err = bucket.PutObjectFromFile("my-object", "LocalFile")
    if err != nil {
        // HandleError(err)
    }

其中LocalFile是需要上传的本地文件的路径。上传成功后,可以通过 Bucket.ListObjects来查看。

下载文件

通过Bucket.GetObject下载文件:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }
    
    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }
    
    err = bucket.GetObjectToFile("my-object", "LocalFile")
    if err != nil {
        // HandleError(err)
    }

其中LocalFile是文件保存的路径。下载成功后,可以打开文件查看其内容。

删除文件

通过Bucket.DeleteObject从Bucket中删除文件:

    import "github.com/aliyun/aliyun-oss-go-sdk/oss"

    client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
    if err != nil {
        // HandleError(err)
    }

    bucket, err := client.Bucket("my-bucket")
    if err != nil {
        // HandleError(err)
    }

    err = bucket.DeleteObject("my-object")
    if err != nil {
        // HandleError(err)
    }

删除文件后可以通过Bucket.ListObjects来查看文件确实已经被删除。

了解更多