第 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)部署定义了多个存储策略,例如,默认策略以及启用纠删代码的另一个策略,您可以将容器配置为使用非默认存储策略。

流程

  1. 创建私有或公共容器:

    • 创建私有容器,以允许项目的成员列出容器中的对象,上传和下载对象。项目成员在其请求中包含项目的 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"
  2. 将容器配置为使用非默认存储策略:

    $ openstack container set -H "X-Storage-Policy:<policy>" <container>
    • 将 & lt;policy > 替换为您要用于容器的策略的名称或别名。
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部