认识
官网:https://cloud.tencent.com/product/cos
文档:https://cloud.tencent.com/document/product/436
仓库:None
对象存储(Cloud Object Storage,COS)是腾讯云提供的一种存储海量文件的分布式存储服务,具有高扩展性、低成本、可靠安全等优点。通过控制台、API、SDK 和工具等多样化方式,用户可简单、快速地接入 COS,进行多格式文件的上传、下载和管理,实现海量数据存储和管理。简而言之,COS 是腾讯云实现的 S3 存储服务。
组成
—— 根据规范,该部分将记录 COS 对象存储的架构及底层关键组件。但鉴于我们是服务用户且服务可用性具有保障,所以我们暂时不必过多关心 COS 的组成及底层实现。
部署模式:Client / Server
性质
API and SDK
API 文档 | https://cloud.tencent.com/document/product/436/7751
SDK 文档 | https://cloud.tencent.com/document/product/436/6474
跨云数据迁移
七牛云 KODO 迁移:https://cloud.tencent.cn/document/product/659/81165
当数据迁移成功后,迁移任务能够显示被迁移的数据量,但是 COS 可能会存在延迟(即无法实时显示当前数据量)。
cos2cos,如果迁移失败,则可能是账号欠费。
客户端工具
COS Browser | https://www.tencentcloud.com/document/product/436/11366
提供 S3 兼容
https://cloud.tencent.com/document/product/436/41284
- 在兼容 S3 的第三方应用中使用 COS 的通用配置 | https://cloud.tencent.com/document/product/436/41284
- 使用 AWS S3 SDK 访问 COS | https://cloud.tencent.com/document/product/436/37421
Endpoint
- cos.<Region>.myqcloud.com
- https://cos.<Region>.myqcloud.com
构造
—— 根据规范,该部分将记录获得 COS 对象存储服务的方法。根据事物构造方法,我们可以通过外界来直接取得 COS 对象存储服务,而不需要我们自行构造。
服务端:注册腾讯云账号,并开通 COS 服务即可。
客户端:
应用
场景 | 方案
域名合规问题
https://cloud.tencent.com/document/faq/436/102489
通过 CDN 服务,将图片上传到 COS 存储
COS 存储桶访问权限,公共权限 -> 公共读私有写
CDN 回源,私有存储桶访问 -> 关闭
在 Groovy 中,通过 Java SDK 访问 COS 存储 | Access S3 with SDK
Java springboot项目引入腾讯云COS实现上传-腾讯云开发者社区-腾讯云
COS Java SDK | https://mvnrepository.com/artifact/com.qcloud/cos_api
文档 | https://javadoc.io/doc/com.qcloud/cos_api/latest/index.html
@Grab(group='com.qcloud', module='cos_api', version='5.6.234')
import com.qcloud.cos.COSClient
import com.qcloud.cos.ClientConfig
import com.qcloud.cos.auth.BasicCOSCredentials
import com.qcloud.cos.region.Region
def secretId = "your_secret_id"
def secretKey = "your_secret_key"
def regionName = "your_region_name"
BasicCOSCredentials cred = new BasicCOSCredentials(secretId, secretKey)
ClientConfig clientConfig = new ClientConfig(new Region(regionName))
COSClient cosClient = new COSClient(cred, clientConfig)
// 列出存储桶中的对象:
def bucketName = "your_bucket_name"
cosClient.listObjects(bucketName).objectSummaries.each { obj ->
println(obj.key)
}
// 上传文件到腾讯云对象存储:
def fileToUpload = new File("path_to_your_file")
cosClient.putObject(bucketName, "object_key", fileToUpload)
// 下载文件:
def outputFile = new File("path_to_output_file")
cosClient.getObject(bucketName, "object_key", outputFile)
SLF4J: Failed to load class “org.slf4j.impl.StaticLoggerBinder”.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.