Skip to main content

S3 网关

从 4.9 开始,JuiceFS 客户端提供 juicefs gateway 子命令,支持通过 S3 兼容的 RESTful API 对外提供文件系统读写访问,可以使用 s3cmd、AWS CLI、MinIO 客户端等客户端或各种语言的 S3 SDK 访问 JuiceFS 上存储的文件。

启用 S3 网关之前需要先使用 auth 命令对文件系统进行认证,并生成配置文件。

设置访问密钥

JuiceFS S3 网关基于开源的 MinIO 代码实现,因此部署时需要指定 MinIO 相关认证信息:

export MINIO_ACCESS_KEY="admin"
export MINIO_SECRET_KEY="password"

如果未能正确设置,将会遭遇类似 MINIO_ROOT_USER should be specified as an environment variable with at least 3 characters 的报错,注意排查。

启动 S3 网关

juicefs gateway myjfs 127.0.0.1:8888

启动成功会看到类似下面的输出:

2023/03/21 20:15:49.945403 juicefs[97188] <INFO>: connected to 47.103.20.252:9308 [client.go:874]
2023/03/21 20:15:49.965411 juicefs[97188] <INFO>: Cache: /Users/herald/.juicefs/cache/jfs8 capacity: 102400 MB [disk_cache.go:747]
Endpoint: http://127.0.0.1:8888

Browser Access:
http://127.0.0.1:8888

Object API (Amazon S3 compatible):
Go: https://docs.min.io/docs/golang-client-quickstart-guide
Java: https://docs.min.io/docs/java-client-quickstart-guide
Python: https://docs.min.io/docs/python-client-quickstart-guide
JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide
.NET: https://docs.min.io/docs/dotnet-client-quickstart-guide

你可以根据需要调整 S3 网关监听的地址和端口,假设你的服务器公网 IP 是 111.2.3.4,你希望能通过互联网开放网关的访问,并绑定 9000 端口,可以这样调整启动命令:

juicefs gateway myjfs 111.2.3.4:9000

访问网关

JuiceFS 云服务 S3 网关启动成功后,在浏览器中直接访问设置的地址,例如上例中的 http://127.0.0.1:8888,打开网页版文件管理器,输入之前设置的 Access Key 和 Secret Key 登录即可。

另外,还可以使用 AWS CLIMinIO 客户端等工具以及各种语言版本的 S3 SDK 访问 JuiceFS 云服务 S3 网关。