手把手教你使用 QingStor 对象存储

手把手教你使用 QingStor 对象存储

QingStor™ 对象存储为用户提供可无限扩展的通用数据存储服务,具有安全可靠、简单易用、高性能、低成本等特点。

在大量公有云用户多样化的应用场景中,QingStor™ 对象存储在性能(高并发)、可用性、稳定性等方面得到了充分的验证。同时,QingStor™ 对象存储已经在借贷宝、泰康人寿等多套私有云生产环境中部署上线,承担了重要的存储引擎角色,为客户的互联网业务提供强大助力。

现在 QingCloud 用户可以在控制台选择北京 3 区(PEK3),通过图形化界面来创建存储空间( Bucket ) 并上传文件,同时我们推荐大家通过 API、SDK 以及命令行工具来管理和使用 QingStorTM 对象存储,下文会有具体介绍。

PS:QingStorTM 对象存储目前为用户提供 12 个月免费套餐,欢迎注册体验。

一、控制台图形化操作

1.创建 Bucket

用户登录控制台,选择北京 3 区,就可以在 Bucket 列表页点击“新建 Bucket”按钮,创建一个新的 Bucket。

由于 Bucket 名称是 URL 域名的一部分,因此需要遵循标准 URL 域名规范:只包含字母、数字、中划线,以字母开始,以字母或数字结尾。创建时请注意长度范围是 6 - 63,另外 Bucket 是全局唯一的,如果提交已存在的名称,则提示创建失败。

注解:新建的 Bucket 是私有的,如果想公开这个 Bucket 的权限,可以在创建后设置。

2.修改 Bucket 权限

对象存储的 Bucket 信息、文件访问受到权限控制。在控制台中可以给 Bucket 设置 3 种级别的权限:

  • 私有: 该 Bucket 及其文件相关的所有 API 接口只能被创建者访问,如果想给特定用户赋予 API 接口访问权限,需要创建者调用 PUT Bucket ACL 接口进行设置。

  • 公开只读: 所有人都可以访问 Bucket 及其文件相关的 GET/HEAD 等类型 API 接口。

  • 公开读写: 所有人都可以访问 Bucket 及其文件相关的所有 API 接口。

注解:如果想指定特定用户的访问权限,可以调用 ACL 的 POST API 来设置。

如果一个 Bucket 不再需要,用户可以删除 Bucket。删除 Bucket 之前,需要首先清空所有的文件和文件夹,且一经删除无法恢复。

3.创建删除文件夹

文件夹是特殊的文件,它的名称也是 API 中 URL 的一部分,因此需要遵循 URL 的 pathname 部分的命名规范。

如果文件夹上传了文件,那么文件夹不能直接删除。用户需要将文件夹中的文件都删除后,再删除文件夹。

4.文件存储与管理

上传文件

用户可以在控制台向一个 Bucket 或一个文件夹上传文件。上传文件时可以单选或多选文件,每次选择文件限制在 10 个。如果要上传的文件名已经存在,上传列表中会提示,上传行为仍然继续,并覆盖已存在的文件。

上传中的文件显示上传的速度、进度,用户可以取消一个上传中的文件。文件上传完成之后,在列表中保持一段时间后消失。可以在上传列表中右键删除一个文件记录,或者清空所有文件记录。文件上传的过程中,可以关闭上传窗口,再次点击上传文件按钮时,会打开当前上传的文件进度。

注解:控制台限制了上传单个文件的大小,超过 1GB 的文件,建议使用 API 或 SDK 来上传。

下载文件

用户可以在控制台下载文件,无论文件所属的 Bucket 是私有还是公开访问的。如果 Bucket 公开了读权限,用户可以从控制台得到文件可访问的 URL,并将 URL 分享给其他人。如果在控制台下载文件,完成下载后,文件保存在浏览器设置的下载保存目录。用户也可以通过 API 或 SDK 下载文件,具体办法请点击阅读原文。

删除文件

与删除文件夹类似,删除文件后无法恢复,因此需要谨慎执行该操作。文件可以批量删除,选择多个文件,在更多操作中选择删除即可。

复制和剪切文件

  • 单个文件的复制和剪切: 右键点击文件,选择复制或剪切,移动到目标 Bucket 或者文件夹下,在更多操作中选择粘贴。

  • 多个文件的复制和剪切: 勾选要复制或者剪切的文件,在更多操作中选择复制或者剪切,移动到目标 Bucket 或者文件夹下,在更多操作中选择粘贴。

注解:暂时不支持文件夹的复制和剪切。复制操作可以执行多次,剪切操作只能执行一次。复制和剪切都会覆盖目标路径下的同名文件。

5.Bucket 监控

Bucket 的监控项分为 3 大类:流量、存储、API,每一类的监控内容说明如下:

流量

  • 外网出流量:从公网下载 Bucket 中的文件所产生的流量。

  • 外网进流量:从公网上传文件到 Bucket 所产生的流量。

  • Zone 内出流量:从青云平台与 Bucket 相同区域的资源下载 Bucket 文件所产生的流量。

  • Zone 内进流量:从青云平台与 Bucket 相同区域上传文件到 Bucket 所产生的流量。

存储

  • 存储空间:Bucket 所有文件占用的存储空间大小。

API

  • 外网读请求:从公网调用该 Bucket 读相关的 API 的次数,如 HEAD/GET。

  • 外网写请求:从公网调用该 Bucket 写相关的 API 的次数,如 PUT/DELETE。

  • Zone 内读请求:从青云平台与 Bucket 相同区域调用该 Bucket 读相关的 API 的次数。

  • Zone 内写请求:从青云平台与 Bucket 相同区域用该 Bucket 写相关的 API 的次数。

每类监控项可分别查询最近一天、最近一个月、最近 6 个月的监控信息。用曲线图来展示时间区间内的变化值,并将监控点的具体数值呈现在表格中。监控项可以在页面右侧选择切换。

二、QingCloud SDK 操作

QingStor™ SDK Python 包含在 QingCloud SDK Python 之中,使用 qingcloud-sdk 前请先在控制台申请 access key,申请后便可以自由使用了。

建立连接

发起请求前首先建立连接:

>>> import qingcloud.qingstor>>> conn = qingcloud.qingstor.connect('pek3a.qingstor.com',  'access key id', 'secret access key')

上面代码中得到的 conn 是 QSConnection 的实例,在接下来的教程中会继续用它创建 Bucket 对象和初始化 multipart 上传。

创建存储空间

创建存储空间, 需要指定空间名称:

>>> bucket = conn.create_bucket('mybucket')

此时得到的 Bucket 实例将被后续用来创建 key 对象,用以操作存储空间中的对象。

创建对象

使用 Bucket 实例创建一个 Object 对象:

>>> key = bucket.new_key('myobject')

此时得到的 key 实例代表一个对象,我们接下来将用它上传一个文件到存储空间。

>>> with open('/tmp/myfile') as f:>>> key.send_file(f)

删除对象

删除存储空间中的对象:

>>> bucket.delete_key('myobject')

三、QingCloud CLI 操作

QingStor™ 对象存储命令行工具 (Command Line Interface) 是与QingStor™ 对象存储服务交互的命令行接口,通过命令行可以完成和使用对象存储 API 一样的操作。

注解:使用 qingcloud-cli 必需一个配置文件,配置自身的 qy_access_key_id 和 qy_secret_access_key 以及 zone 。比如:

>>>qy_access_key_id: 'QINGCLOUDACCESSKEYID'  >>>qy_secret_access_key: 'QINGCLOUDSECRETACCESSKEYEXAMPLE' >>>zone: 'pek3a'

配置文件默认放在 ~/.qingcloud/config.yaml ,也可在每次执行命令时以参数 -f /path/to/config 方式来指定。

使用 QingCloud CLI 操作QingStor™ 对象存储非常简单,创建/删除 Bucket 可以使用:

>>> qingcloud qs create-bucket <bucket_name> >>> qingcloud qs delete-bucket <bucket_name>

PS:QingStorTM 对象存储目前为用户提供 12 个月免费套餐,欢迎大家注册体验。

点击链接创建你的第一个 QingStor Bucket 吧。

推荐阅读