第 5 章 使用 Object Storage 服务(swift)执行操作
Object Storage 服务(swift)将其对象或数据存储在容器中。容器与文件系统中的目录类似,但您无法嵌套它们。您可以在容器中存储任何类型的非结构化数据。例如,对象可以包含 photos、文本文件或镜像。存储的对象不会被压缩。
您可以在容器中创建伪文件夹来组织数据。伪文件夹是包含对象和在容器中创建嵌套结构的逻辑设备。例如,您可以创建一个 Images 文件夹来存储图片和用于存储视频的 Media 文件夹。
您可以在各个项目中创建一个或多个容器,以及每个容器中的一个或多个对象或伪文件夹。
要在云上执行 openstack 客户端命令,您必须指定 clouds.yaml 文件中详述的云名称。您可以使用以下方法之一指定云的名称:
-
在每个命令
中使用--os-cloud选项:
$ openstack flavor list --os-cloud <cloud_name>
如果您访问多个云,则使用此选项。
-
在
bashrc文件中为云名称创建一个环境变量:
`export OS_CLOUD=<cloud_name>`
先决条件
-
管理员已为您创建一个项目,已为您提供了一个
clouds.yaml文件来访问云。 -
已安装
python-openstackclient软件包。
5.1. 创建私有和公共容器 复制链接链接已复制到粘贴板!
您可以创建私有或公共容器,以在对象存储服务(swift)中存储数据:
- private :对项目成员的限制访问权限。
- Public:允许访问具有公共 URL 的任何人。
新容器使用默认的存储策略。如果您的 Red Hat OpenStack Services on OpenShift (RHOSO)部署定义了多个存储策略,例如,默认策略以及启用纠删代码的另一个策略,您可以将容器配置为使用非默认存储策略。
流程
创建私有或公共容器:
创建私有容器,以允许项目的成员列出容器中的对象,上传和下载对象。项目成员在其请求中包含项目的 Identity 服务(keystone)令牌:
$ openstack container create <container> \ --read-acl "<project_id>":*" \ --write-acl "<project_id>:*"-
将
<container> 替换为容器的名称。 -
将
<project_id> 替换为项目的 ID。
-
将
创建一个公共容器,以允许具有公共 URL 的任何人列出容器中的对象并从容器中下载对象:
$ openstack container create <container> \ --read-acl ".r:*,.rlistings"
将容器配置为使用非默认存储策略:
$ openstack container set -H "X-Storage-Policy:<policy>" <container>-
将 &
lt;policy> 替换为您要用于容器的策略的名称或别名。
-
将 &