Go操作腾讯云COS对象存储的简单使用案例
准备环境
安装Go环境
Golang:用于下载和安装 Go 编译运行环境,请前往 Golang 官网进行下载
安装SDK
go get -u github.com/tencentyun/cos-go-sdk-v5
准备腾讯云COS对象存储服务
新用户一元钱即可购买腾讯云六个月50G容量的对象存储,别说一元钱都没有

请求示例
使用COS域名生成 COS GO 客户端 Client 结构
使用永久密钥
package main
import (
"fmt"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
)
// 请求示例,使用永久密钥
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
client := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretid,
SecretKey: secretkey,
},
})
fmt.Println(client)
}
// 输出
&{0xc00007eea0 cos-go-sdk-v5/0.7.7 0xc00000e380 {0xc00010e2a0} 0xc00010e2d0 0xc00010e2d0 0xc00010e2d0 0xc00010e2d0}
创建存储桶
package main
import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
)
var secretid string = "AKIDe75eCTxIpqhjT9Iyyi5CPMIyNYR0E8gC"
var secretkey string = "mIYYHkJbomVyCB0sSmqeCKHyjW6HCrG2"
var cos_url string ="https://soft-1259174039.cos.ap-beijing.myqcloud.com"
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretid,
SecretKey: secretkey,
},
})
_,err := c.Bucket.Put(context.Background(),nil)
if err != nil{
panic(err)
}
}
查询存储桶列表
package main
import (
"context"
"fmt"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
)
var secretid string = "AKIDe75eCTxIpqhjT9Iyyi5CPMIyNYR0E8gC"
var secretkey string = "mIYYHkJbomVyCB0sSmqeCKHyjW6HCrG2"
var cos_url string ="https://soft-1259174039.cos.ap-beijing.myqcloud.com"
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: secretid,
SecretKey: secretkey,
},
})
s,_,err := c.Service.Get(context.Background())
if err != nil{
panic(err)
}
for _,b := range s.Buckets {
fmt.Println("%#v\n",b)
}
}
// %#v
// {soft-1259174039 ap-beijing 2020-07-23T09:25:40Z}
上传对象
package main
import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
"strings"
)
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: "secretid",
SecretKey: "secretkey",
},
})
name := "test/objectPut.go"
// 1. 通过字符串上传对象
f := strings.NewReader("test")
//
_,err := c.Object.Put(context.Background(),name,f,nil)
if err != nil{
panic(err)
}
// 上传本地文件
_, err = c.Object.PutFromFile(context.Background(),name,"/Users/youmen/a/test.txt",nil)
if err != nil {
panic(err)
}
}


查询对象列表
package main
import (
"context"
"fmt"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
)
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: "secretid",
SecretKey: "secretkey",
},
})
opt := &cos.BucketGetOptions{
Prefix: "test",
MaxKeys: 3,
}
v,_, err := c.Bucket.Get(context.Background(),opt)
if err != nil{
panic(err)
}
for _,c := range v.Contents {
fmt.Println("%s,%d\n",c.Key,c.Size)
}
}
//%s,%d
// test/objectPut.go 43
下载对象
package main
import (
"context"
"fmt"
"github.com/tencentyun/cos-go-sdk-v5"
"io/ioutil"
"net/http"
"net/url"
)
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: "secretid",
SecretKey: "secretkey",
},
})
// 1.通过响应体获取对象
name := "test/objectPut.go"
resp,err := c.Object.Get(context.Background(),name,nil)
if err != nil{
panic(err)
}
bs,_ := ioutil.ReadAll(resp.Body)
resp.Body.Close()
fmt.Println("%s\n",string(bs))
// 2.获取对象到本地文件
_,err = c.Object.GetToFile(context.Background(),name,"exampleobject",nil)
if err != nil{
panic(err)
}
}
//%s
// HelloWorld,纵有疾风起,人生不言弃!
// 我们去查看之前上传的文件内容
// cat /Users/youmen/a/test.txt
// HelloWorld,纵有疾风起,人生不言弃!%
删除对象
package main
import (
"context"
"github.com/tencentyun/cos-go-sdk-v5"
"net/http"
"net/url"
)
func main() {
u, _ := url.Parse("cos_url")
b := &cos.BaseURL{BucketURL: u}
c := cos.NewClient(b, &http.Client{
Transport: &cos.AuthorizationTransport{
SecretID: "secretid",
SecretKey: "secretkey",
},
})
// 删除对象
name := "test/objectPut.go"
_,err := c.Object.Delete(context.Background(),name)
if err != nil{
panic(err)
}
}

Go操作腾讯云COS对象存储的简单使用案例的更多相关文章
- 腾讯云COS对象存储的简单使用
叮当哥之前买了一年的腾讯云服务器,昨日偶然发现腾讯云送了叮当哥半年的cos对象存储服务器,于是就撸起袖子传了几张珍藏的高清大图上去,现将其上传的简单使用步骤总结一波(其它操作参加官方SDK文档API) ...
- 腾讯云COS对象存储占据数据容灾C位
说到公有云容灾,大家首先想到的是云上数据备份. 然而,随着企业核心业务逐渐从线下迁移到云上,客户提出了更高的要求.如何确保云上业务的高可用.数据的高可靠,这对云厂商提出了新的挑战. 腾讯云作为全球领先 ...
- 腾讯云COS对象存储 Web 端直传实践(JAVA实现)
使用 腾讯云COS对象存储做第三方存储云服务,把一些文件都放在上面,这里主要有三中实现方式:第一种就是在控制台去设置好,直接上传文件.第二种就是走服务端,上传文件,就是说,上传文件是从服务端去上传上去 ...
- 腾讯云 COS 对象存储使用
目前使用腾讯云的对象存储cos服务,将本地的文件同步到cos中,看了腾讯云的用户文档,发现使用COS Migration 工具还是挺适合的. 原因 因为服务器已经安装有java环境,而cos的几个用户 ...
- 腾讯云COS对象存储
一.腾讯云COS 腾讯云对象存储 COS 是一种存储海量数据的分布式存储服务.COS 提供了多种对象的存储类型:标准存储.低频存储.归档存储. 二.为什么要使用TA 便宜: 个人用户有6个月的免费使用 ...
- 腾讯云的对象存储COS
什么是对象存储COS Clound Object Storage,COS,专门为企业和开发者们提供能够存储海量的分布式存储服务,用户可以随时通过互联网对大量数据进行批量存储和处理,在任意位置存储和检索 ...
- 腾讯云cos对象在线显示
问题 前端使用了一张cos的图片,但是无法显示图片,使用的是cdn的加速域名地址. 对比:使用服务器的直接域名是可以显示的. 两者地址直接访问时,一者在线显示,一者直接下载到本地. 原因: 使用默认提 ...
- PHP 腾讯云cos使用之我见
因为某些人的原因,本文从新改名发布一遍. 原名称:tp5 -- 腾讯云cos简单使用 原文链接:https://www.cnblogs.com/YFYQ/p/10840050.html 因项目需要,本 ...
- tp5 -- 腾讯云cos简单使用
因项目需要,本来是需要对接阿里云oss,但因客户错误将云存储买成腾讯云cos,因此简单做了个对象上传使用 首先下载cos的sdk: 三种方式在文档上面都有介绍 SDK 安装有三种方式:Composer ...
随机推荐
- android 抓取native层奔溃
使用android的breakpad工具 使用这个工具需要下载Breakpad的源码,然后进行编译,编译之后会生成两个工具 我们使用这两个工具来解析奔溃的位置.这里我们可以下载已经编译好的工具 下载地 ...
- 网络编程 套接字socket TCP UDP
网络编程与套接字 网络编程 网络编程是什么: 网络通常指的是计算机中的互联网,是由多台计算机通过网线或其他媒介相互链接组成的 编写基于网络的应用程序的过程序称之为网络编程. 网络编程最主要的工 ...
- 深入理解RocketMQ(一)---阅读源码准备
本文主要描述使用Idea获取rocketMQ源码及源码的读取. 在演示搭建源码环境前,先简要描述一下RocketMQ的设计目标. 1.架构模式 和大多数消息中间件一样,采用的是发布订阅模式,基本组件包 ...
- 近期Java高级开发岗面试总结
原文出处:公众号:编程大道 作者:walking 近期Java高级开发岗面试总结 哈喽大家好,我是walking,这是我的公众号:编程大道. 很久没和大家见面了,文章更新的速度略有延后.这个公众号断断 ...
- 数据库连接池 --Druid 连接工具类创建_JDBCUtils
package com.itheima.jdbc_druid; import com.alibaba.druid.pool.DruidDataSourceFactory; import javax.s ...
- 用阿里的 sketch 插件 FusionDesign 来快速设计中后台
Fusion Design 是阿里推出的新的基于sketch的快速设计方案,很适合快速设计中后台. (1) 到Fusion官方站点 https://fusion.design 注册并创建一个项目. ( ...
- Cache写策略(Cache一致性问题与骚操作)
写命中 写直达(Write Through) 信息会被同时写到cache的块和主存中.这样做虽然比较慢,但缺少代价小,不需要把整个块都写回主存.也不会发生一致性问题. 对于写直达,多出来%10向主存写 ...
- ant design pro 当中改变ant design 组件的样式和 数据管理
ant design pro 简介 官网简介 链接 https://pro.ant.design/docs/getting-started-cn 项目结构 https://github.com/ant ...
- day26 作业(ATM第二版)
目录 start.py conf.settings.py core.src.py db.db_handler.py interface.bank_interface.py interface.shop ...
- Linux超强截图工具flameshot
Pop!_OS自带的截屏快捷键如下 但讲道理这个是真的不好用 所以我们借助第三方的截图工具,这里推荐flameshot(火焰截图) 在终端键入以下命令即可安装 sudo apt update sudo ...