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 ...
随机推荐
- Spring7——开发基于注解形式的spring
开发基于注解形式的spring SpringIOC容器的2种形式: (1)xml配置文件:applicationContext.xml; 存bean:<bean> 取bean: Appli ...
- robot framework使用小结(一)
项目组要用到robot framework验收web,因此花了两天时间了解了一下这个框架.我把网上各位大侠分享的内容整理成一个小小demo,参考的出处没有列出来,在此一并感谢各位. demo仍旧是打开 ...
- git和github入门指南(2.1)
2.git常用命令 2.1.git的三个区 1.工作区 工作区就是你项目所在目录,这个目录是可以非常直观的看到的,编写代码主要在这个目录进行,例如: 2.暂存区 暂存区从字面上去理解就是用来暂时保存项 ...
- 部署JUnit
JUnit的简介和使用:http://blog.csdn.net/luanlouis/article/details/37562165 jar包下载地址:http://www.java2s.com/C ...
- js进度条
第一步//====================.wrap,.circle,.percent{ position: absolute; ...
- 手把手教你部署 Redis Cluster
环境准备 阿里云申请3台ECS,如下: 序号 内网IP OS A 172.16.190.78 CentOS 7.6 B 172.16.242.36 CentOS 7.6 C 172.16.190.77 ...
- 高可用服务注册中心(Eureka-Cluster)
在实际生产中,我们需要高可用的集群方案,本章就是基于SpringBoot1.5.4 Cloud(Dalston.SR2) 的高可用Eureka Cluster,以及生产中需要注意的事项… - Eure ...
- 阿里云centos7安装redis全过程记录
Redis下载地址:https://redis.io/download(这个连接可能得翻墙查看,但是在centos7服务器上安装过程不需要翻墙,我查看了最新的是redis-4.0.9.tar.gz ) ...
- java 中Object类中toString()的使用
1. 当我们输出一个对象的引用时,实际上就是调用当前对象的toString() 2. Object类中toString()的定义: public String toString() { return ...
- 链表中倒数第k个节点(剑指offer-14)
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; } }*/ ...