前言
最近公司有用到COS对象存储,接下来和大家一起聊聊对象存储,实际上存储这一块在我之前的博客中有提到,博客中讲述了分布式文件系统存储、块存储和对象存储的相关工作原理及三者之间的区别,大家感兴趣的话可以去看一看我这篇博客《Ceph分布式存储》。
一、COS概述
COS 对象存储是在云上提供无层次结构的分布式存储产品,为用户提供单价较低且快速可靠的数据存储方案。COS 以冗余的方式跨多个可用区存储用户数据,并允许多个不同的客户端或应用程序线程同时对这些数据进行读或写操作。同时可通过云服务器实例或互联网使用 Web API 接口存储和检索数据。
1、对象存储和文件存储的区别?
-
对象存储
无目录层次结构、无数据格式限制,可存储任意数量的数据,存储桶空间无容量上限,无需分区管理。数据支持高可用架构部署,设计保障数据最终一致性,不支持文件锁等特性。API 使用 HTTP/HTTPS 的协议访问,并提供 SDK 和工具等方式与业务集成,上传到 COS 的对象可通过 URL 地址直接访问或下载。
-
文件存储
使用常用的网络文件传输协议,可创建文件系统并实现大规模扩展,需挂载在云服务器中使用。文件存储可为网站、在线发行、存档各种应用存储。 计算吞吐量高,具有极高的可用性和持久性,也适用于并发较高或需要共享存储的需求。
2、对象存储和云硬盘的区别?
-
对象存储
对象存储具备无文件系统、目录结构、文件数量和空间上限的特性,需通过 Web API 接口管理和访问存储,提供了 SDK 和工具等集成,可以不依托云服务器单独使用。对象存储支持大规模数据的访问,但不适合毫秒级响应或随机读写的场景。
-
云硬盘
云硬盘需要搭配云服务器,使用文件系统分区或格式化后,才可以被挂载使用。根据云硬盘不同的类型,针对不同的性能指标提供了区别 IOPS 和吞吐性能的产品,可满足单机使用的不同场景。
3、应用场景
对于COS对象存储来说,它又可分为:标准存储、低频存储、归档存储。
-
标准存储
标准存储(默认)适用于实时访问大量热点文件、频繁的数据交互等业务场景。
-
低频存储
低频存储数据取回会产生费用,适用于较低访问频率(例如平均每月访问频率1到2次)的业务场景。
-
归档存储
归档存储提供了最低的存储单价,但读取数据时需要较长解冻时间,因而适合需要长期保存数据的业务场景。
二、基本概念
- 存储桶(bucket):是对象的载体,可理解为存放对象的“容器”。
- 对象(Object):是对象存储的基本单元,可理解为任何格式类型的数据,例如图片、文档和音视频文件等。
- 地域(Region):是腾讯云托管机房的分布地区,对象存储 COS 的数据存放在这些地域的存储桶中。
- 访问域名(Endpoint):对象被存放到存储桶中,用户可通过访问域名访问和下载对象。
三、COS优点
-
稳定持久
腾讯云对象存储提供数据跨多架构、多设备冗余存储,为用户数据提供异地容灾和资源隔离功能。
-
安全可靠
COS 提供防盗链功能,可屏蔽恶意来源的访问;支持数据 SSL 加密传输,控制每个单独文件的读写权限。
-
成本最优
使用 COS,无需传统硬件的采购、部署和运维,节省了运维工作和托管成本。
-
简单易用
COS 提供图形化程序、命令行工具、协议工具等多种途径对存储对象进行批量操作,让使用更为简单。
-
接入便捷
COS 提供丰富的 SDK 接入工具,简单且可靠,同时COS 提供无缝迁移工具进行迁移和接入。
-
服务集成
COS 支持与其他腾讯云产品联动,包括 CDN 加速、数据万象图片处理、音视频转码、文件预览等组件。
四、COS管理
4.1 基本概念
- 存储桶(bucket):是对象的载体,可理解为存放对象的“容器”。
- 对象(Object):是对象存储的基本单元,可理解为任何格式类型的数据,例如图片、文档和音视频文件等。
- 地域(Region):是腾讯云托管机房的分布地区,对象存储 COS 的数据存放在这些地域的存储桶中。
4.2 基本操作
1、创建存储桶
我们需要创建一个用于存放对象的存储桶:
(1)在对象存储控制台左侧导航栏中单击【存储桶列表】,进入存储桶管理页。
(2)单击【创建存储桶】,输入以下配置信息,其他配置保持默认即可。
- 名称:输入存储桶名称。名称设置后不可修改。
- 所属地域:存储桶所属地域,选择与您业务最近的一个地区,例如广州地域。
- 访问权限:存储桶访问权限,此处我们保持默认为“私有读写”。
(3)单击【确定】,即可创建完成。
2、上传对象
从本地选择文件上传到存储桶:
(1)单击存储桶名称,进入存储桶列表页。
(2)选择【上传文件】–>【选择文件】,选择需要上传至存储桶的文件,上传相应的文件。
(3)单击【上传】,即可将对应的文件上传至存储桶。
3、下载对象
将云上数据下载到本地:
(1)单击文件 exampleobjext.txt 右侧的【详情】,进入对象属性页。
(2)在【基本信息】配置项中,单击【下载对象】即可下载,或单击【复制临时链接】至浏览器下载该对象。
以上操作均有腾讯云文档提供,操作并不难,也不是重点,重点的是搞清COS对象存储的工作原理,以及与块存储、文件系统存储之间的区别以及优缺点。
五、COSBrowser
COSBrowser 是腾讯云对象存储 COS 推出的可视化界面工具,可实现对 COS 资源的查看、传输和管理。COS 对象存储使用的工具有很多,比如:COSCMD、COS Migration等。目前 COSBrowser 有桌面端和移动端两种,本次主要讲桌面端的相关操作及功能。
5.1 登录界面
COSBrowser 桌面端仅支持云 API 密钥进行登录使用,API秘钥可在COS实例中获取,软件登录界面如下所示:
上图中 SecretID 和 SecretKey 可在 COS 对象存储控制台中创建并获取,如下图所示:
5.2 基本功能
- 创建/删除存储桶
- 查看存储桶详情
- 添加访问路径
- 上传文件/文件夹
- 下载文件/文件夹
- 删除文件/文件夹
- 复制粘贴文件
功能还有很多,以上只列举一部分功能,更多功能可查阅官方文档。
COS 对象存储使用的工具还有很多,比如:COSCMD、COS Migration、FTP Server、COSFS、Hadoop等工具,实际上不管用哪种工具,其基本的操作和功能都差不多。
六、FAQ
1、COS数据误删问题
-
问题描述:
对象存储 COS 的数据冗余存储机制是针对服务器等硬件出现故障时需要数据恢复的场景进行设计的。如果主动对 COS 的数据手动删除或进行配置删除后,删除后的数据将无法恢复。
-
解决方案
(1)对存储桶文件做定时备份操作:
- 使用 COSCMD 工具将 COS 内对象下载至本地或第三方服务器。
- 使用 COS Migration 工具或者跨地域复制功能实现同地域或跨地域的存储桶数据备份。
- 定期使用 COS API、SDK,将数据备份到 COS 的其他存储桶。
- 使用版本控制保存您的历史版本数据。
(2)使用 COS 权限管理:
- 读写权限分离,对于只需要读数据的业务、只使用具有读权限的子账号或临时密钥进行访问。
- 存储桶(Bucket)权限分离,针对不同的业务,只授权对应业务范围内的存储桶、目录和操作权限。
- 不使用主账号访问 COS。
- 使用临时密钥访问 COS。
- 妥善保管数据访问的凭据,如腾讯云账号密码、CAM 子账号访问凭据、腾讯云 API 密钥等。
2、API接口调用
-
问题描述:
在调用 API 接口时,出现“Request has expired”等错误信息。
-
解决方案
出现该提示,存在两种可能:
(1)一是因为您发起请求的时间超过了签名的有效时间;
(2)二是您本地系统时间和所在时区的时间不一致。
针对第一种可能,可重新获取有效的请求签名再进行 API 操作。若是第二种可能,将你本地系统时间按照所在时区的时间进行校正。
参考资料:腾讯云文档-COS对象存储