S3 协议接口
S3 桶存放在 卷下。
S3 网关是提供兼容 S3 的 API 的独立组件,它应当和普通的 Ozone 组件分别启动。
你可以使用发行包启动一个基于 docker 的集群,其中会包括 S3 网关。
进入 compose/ozone
目录,启动服务:
你可以通过 http://localhost:9878
访问 S3 网关。
URL 规范
Ozone S3 网关既支持虚拟主机风格的 URL 作为桶地址(形如: URL 作为桶地址(形如 http://host:9878/bucketname)。
<property>
<name>ozone.s3g.domain.name</name>
在桶的 URL 中加上 ?browser=true
,就可以在浏览器中浏览桶。
比如,testbucket
桶中的内容可以在浏览器中用 来查看。
已实现的 REST 端点
S3 网关服务的操作:
桶操作:
对象操作:
如果不启用安全机制,你可以使用**任何** AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY 来访问 Ozone 的 S3 服务。
现在你可以使用 key 和 secret 来访问 S3 endpoint:
export AWS_ACCESS_KEY_ID=testuser/scm@EXAMPLE.COM
export AWS_SECRET_ACCESS_KEY=c261b6ecabf7d37d5f9ded654b1c724adac9bd9f13e247a235e567e8296d2999
aws s3api --endpoint http://localhost:9878 create-bucket --bucket bucket1
公开任何卷
Ozone 与 S3 相比,Ozone 在命名空间层次结构中多了一个元素:卷。默认情况下,可以使用 S3 接口访问 卷的所有存储桶,但仅有 /s3v
卷的(Ozone)存储桶被公开。
为了使 S3 接口上的任何其他桶可用,可以创建一个“符号链接”的桶:
本例通过 S3 接口将 /vol1/bucket1
Ozone 桶公开为 S3 兼容的 common-bucket
。
(注:桶链接功能的实现细节可在设计文档中找到)
通过指定自定义的 –endpoint 选项,aws
命令行接口可以在 Ozone S3 上使用。
aws s3api --endpoint http://localhost:9878 create-bucket --bucket buckettest
S3 Fuse 驱动(goofys)
Goofys 是一个 S3 FUSE 驱动,可以将 Ozone 的桶挂载到 POSIX 文件系统。