跳转到主要内容

OpenStack 对象存储

项目描述

https://governance.openstack.org/tc/badges/swift.svg

OpenStack Swift 是一个分布式对象存储系统,设计从单台机器扩展到数千台服务器。Swift 优化了多租户和高并发。Swift 适用于备份、网页和移动内容,以及任何其他无限制增长的非结构化数据。

Swift 提供了一个简单、基于 REST 的 API,详细文档在 https://docs.openstack.org/swift/latest/

Swift 最初是作为 Rackspace Cloud Files 的基础开发的,并于 2010 年作为 OpenStack 项目的一部分开源。此后,它已经从许多公司获得了贡献,并孕育了一个繁荣的第三方工具生态系统。Swift 的贡献者列在 AUTHORS 文件中。

文档

要构建文档,请运行

pip install -r requirements.txt -r doc/requirements.txt
sphinx-build -W -b html doc/source doc/build/html

然后浏览到 doc/build/html/index.html。这些文档在每次提交后自动生成,并在 https://docs.openstack.org/swift/latest/ 上提供。

开发者

入门

Swift 是 OpenStack 的一部分,遵循所有 OpenStack 项目通用的代码贡献、审查和测试流程。

如果您想开始贡献,请查看这些指南以帮助您开始。

开始的最佳地方是“SAIO - Swift All In One”。本文档将指导您在虚拟机中设置Swift的开发集群。SAIO环境非常适合对Swift进行小规模测试以及尝试新功能和修复错误。

测试

Swift的源代码树中包含三种类型的测试。

  1. 单元测试

  2. 功能测试

  3. 探测测试

单元测试检查代码的小部分是否表现正常。例如,一个单元测试可能会测试一个单独的函数以确保各种输入给出预期的输出。这验证了代码是正确的,并且没有引入回归。

功能测试检查客户端API是否按预期工作。这些测试可以在支持Swift API的任何端点上运行(尽管一些测试需要具有不同权限级别的多个账户)。这些是“黑盒”测试,确保针对Swift编写的客户端应用程序将继续工作。

探测测试是“白盒”测试,用于验证Swift集群的内部工作。它们是为“SAIO - Swift All In One”开发环境编写的。例如,一个探测测试可能会创建一个对象,删除一个副本,并确保后台一致性过程找到并纠正错误。

您可以使用.unittests运行单元测试,使用.functests运行功能测试,使用.probetests运行探测测试。还有一个额外的.alltests脚本,它封装了其他三个。

要完全运行测试,目标环境必须使用支持大xattrs的文件系统。强烈推荐使用XFS。对于单元测试和进程内功能测试,要么使用XFS挂载/tmp,要么通过TMPDIR环境变量提供另一个XFS文件系统。如果没有此设置,测试应该仍然通过,但会跳过大量测试。

代码组织

  • doc/: 文档

  • etc/: 示例配置文件

  • examples/: 文档中使用的配置片段

  • swift/: 核心代码

    • account/: 账户服务器

    • cli/: 支持一些CLI工具的代码

    • common/: 不同模块共享的代码

      • middleware/: “标准”官方支持的中间件

      • ring/: 实现Swift的环的代码

    • container/: 容器服务器

    • locale/: 国际化(翻译)数据

    • obj/: 对象服务器

    • proxy/: 代理服务器

  • test/: 单元、功能和探测测试

数据流

Swift是一个WSGI应用程序,并使用eventlet的WSGI服务器。在进程运行后,新请求的入口点是swift/proxy/server.py中的Application类。从那里,选择一个控制器,处理请求。代理可以选择将请求转发到后端服务器。例如,对对象服务器的请求的入口点是swift/obj/server.py中的ObjectController类。

对于部署者

部署者文档也可在https://docs.openstack.org/swift/latest/找到。一个好的起点是https://docs.openstack.org/swift/latest/deployment_guide.html。有一个操作手册,提供了有关如何在运行Swift集群时诊断和排除常见问题的信息。

您可以使用.functests对Swift集群进行功能测试。这些功能测试需要运行/etc/swift/test.conf。在源代码树中可以找到示例配置文件,位于test/sample.conf

对于客户端应用程序

对于客户端应用,官方提供的Python语言绑定可在https://opendev.org/openstack/python-swiftclient找到。

完整的API文档请参考https://docs.openstack.org/api-ref/object-store/

有许多应用程序和库支持并配合OpenStack Swift使用,部分可在相关项目页面查看。


如需更多信息,请加入OFTC上的#openstack-swift频道。

谢谢,

Swift开发团队

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解安装包的更多信息

源代码分发

swift-2.34.0.tar.gz (3.8 MB 查看哈希值)

上传时间 源代码

构建分发

swift-2.34.0-py2.py3-none-any.whl (1.0 MB 查看哈希值)

上传时间 Python 2 Python 3

由以下机构支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面