暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

go语言操作对象存储阿里云-oss

go技术沙龙 2020-04-25
961

 

产品优势

稳定可靠


OSS作为阿里巴巴全集团数据存储的核心基础设施,多年支撑双十一业务高峰,历经高可用与高可靠的严苛考验。OSS的多重冗余架构设计,为数据持久存储提供可靠保障。同时,OSS基于高可用架构设计,消除单节故障,确保数据业务的持续性。


安全合规



支持服务端加密、客户端加密、防盗链、IP黑白名单、细粒度权限管控、日志审计、WORM特性,并获得多项合规认证,包括SEC、FINRA等,满足企业数据安全与合规要求。

               

数据分层



提供标准、低频、归档多种类型,通过生命周期自动化实现数据类型转换与过期管理,覆盖从热到冷多种存储场景。

 

运行环境

  • Go 1.5及以上。

 

安装方法


  • go get github.com/aliyun/aliyun-oss-go-sdk/oss

 

快速使用

获取存储空间列表(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)
                }
                复制

                 

                注意事项

                • bucket就是用户创建的顶层目录,所有用户上传的文件都必须存在bucket下面,而且bucket在OSS系统中是不能重名的。如果已经有一个用户创建了bucket名称叫ceshi,那么很遗憾,您就不能创建一个名称叫ceshi的bucket了,每个用户最多可以创建10个bucket。

                • AccessKey是访问阿里云API的秘钥,这里也需要提前创建一份,创建后我们需要记住自己的AccessKey ID和Access Key Secret 获取地址https://ak-console.aliyun.com/#/accesskey

                • Endpoint  (地域节点)

                • 拷贝示例文件。到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


                文章转载自go技术沙龙,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                评论