MCPcopy Index your code
hub / github.com/aliyun/aliyun-oss-go-sdk

github.com/aliyun/aliyun-oss-go-sdk @v3.0.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.0.2 ↗ · + Follow
1,623 symbols 10,010 edges 108 files 1,029 documented · 63% 37 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Aliyun OSS SDK for Go

GitHub version Build Status Coverage Status

README in English

关于

  • 此Go SDK基于阿里云对象存储服务官方API构建。
  • 阿里云对象存储(Object Storage Service,简称OSS),是阿里云对外提供的海量,安全,低成本,高可靠的云存储服务。
  • OSS适合存放任意文件类型,适合各种网站、开发企业及开发者使用。
  • 使用此SDK,用户可以方便地在任何应用、任何时间、任何地点上传,下载和管理数据。

版本

  • Current version: v3.0.2

运行环境

  • Go 1.5及以上。

安装方法

GitHub安装

  • 执行命令go get github.com/aliyun/aliyun-oss-go-sdk/oss获取远程代码包。
  • 在您的代码中使用import "github.com/aliyun/aliyun-oss-go-sdk/oss"引入OSS Go SDK的包。

快速使用

获取存储空间列表(List Bucket)

    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("Buckets:", bucket.Name)
    }

创建存储空间(Create Bucket)

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

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

删除存储空间(Delete Bucket)

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

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

上传文件(Put Object)

    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)
    }

下载文件 (Get Object)

    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)
    }

获取文件列表(List Objects)

    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("Objects:", object.Key)
    }

删除文件(Delete Object)

    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)
    }

其它

更多的示例程序,请参看OSS Go SDK安装路径(即GOPATH变量中的第一个路径)下的src\github.com\aliyun\aliyun-oss-go-sdk\sample,该目录下为示例程序, 或者参看https://github.com/aliyun/aliyun-oss-go-sdk下sample目录中的示例文件。

注意事项

运行sample

  • 拷贝示例文件。到OSS Go SDK的安装路径(即GOPATH变量中的第一个路径),进入OSS Go SDK的代码目录src\github.com\aliyun\aliyun-oss-go-sdk, 把其下的sample目录和sample.go复制到您的测试工程src目录下。
  • 修改sample/config.go里的endpoint、AccessKeyId、AccessKeySecret、BucketName等配置。
  • 请在您的工程目录下执行go run src/sample.go

联系我们

作者

License

Extension points exported contracts — how you extend this code

CredentialsProvider (Interface)
CredentialsProvider is interface for get Credential Info [5 implementers]
oss/conf.go
ProgressListener (Interface)
ProgressListener listens progress change [4 implementers]
oss/progress.go
Encrypter (Interface)
Encrypter is interface with only encrypt method [3 implementers]
oss/crypto/cipher.go
Option (FuncType)
Option HTTP option
oss/option.go
ClientOption (FuncType)
ClientOption client option such as UseCname, Timeout, SecurityToken.
oss/client.go
Credentials (Interface)
Credentials is interface for get AccessKeyID,AccessKeySecret,SecurityToken [3 implementers]
oss/conf.go
Decrypter (Interface)
Decrypter is interface with only decrypt method [3 implementers]
oss/crypto/cipher.go
CredentialsProviderE (Interface)
(no doc) [1 implementers]
oss/conf.go

Core symbols most depended-on inside this repo

HandleError
called by 400
sample/comm.go
Close
called by 294
oss/model.go
DeleteObject
called by 290
oss/bucket.go
CreateBucket
called by 271
oss/client.go
New
called by 246
oss/client.go
PutObject
called by 192
oss/bucket.go
DeleteBucket
called by 180
oss/client.go
Bucket
called by 148
oss/client.go

Shape

Method 922
Function 373
Struct 262
TypeAlias 47
Interface 13
FuncType 6

Languages

Go100%

Modules by API surface

oss/type.go200 symbols
oss/client_test.go151 symbols
oss/client.go146 symbols
oss/bucket_test.go130 symbols
oss/option.go116 symbols
oss/bucket.go50 symbols
oss/conn.go44 symbols
oss/utils.go38 symbols
oss/crypto/crypto_bucket_test.go37 symbols
oss/type_test.go33 symbols
oss/crypto/crypto_bucket.go32 symbols
oss/conf.go31 symbols

For agents

$ claude mcp add aliyun-oss-go-sdk \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact