You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java应用连接Minio时,如何配置S3端点完成认证?

OneTable Java应用连接Minio的配置方案

问题概述

你使用OneTable工具包的启动命令如下:

java -jar utilities-0.1.0-SNAPSHOT-bundled.jar --datasetConfig onetable.yaml

已配置Minio的访问密钥环境变量:

export AWS_ACCESS_KEY_ID=admin
export AWS_SECRET_ACCESS_KEY=password

但尝试AWS官方文档中的endpoint相关环境变量均无效,报错核心为403 Forbidden,无法访问Minio上的S3路径。

核心原因

OneTable依赖Hudi,Hudi底层使用Hadoop的S3A文件系统客户端,而非直接采用AWS SDK的配置逻辑,因此AWS原生环境变量无法被识别,必须使用Hadoop S3A对应的配置参数。

可行解决方案

方案1:通过JVM启动参数注入配置

直接在启动命令中添加Hadoop S3A的配置参数:

java \
-Dfs.s3a.endpoint=http://minio:9000 \
-Dfs.s3a.access.key=admin \
-Dfs.s3a.secret.key=password \
-Dfs.s3a.path.style.access=true \
-Dfs.s3a.connection.ssl.enabled=false \
-jar utilities-0.1.0-SNAPSHOT-bundled.jar --datasetConfig onetable.yaml

关键参数说明:

  • fs.s3a.endpoint:指定Minio服务的访问地址
  • fs.s3a.path.style.access:启用路径风格访问(Minio默认使用此模式,与AWS S3的虚拟主机风格不同)
  • fs.s3a.connection.ssl.enabled:Minio未开启HTTPS时设为false

方案2:在onetable.yaml中配置

修改你的数据集配置文件onetable.yaml,添加Hadoop相关配置项:

source:
  type: HUDI
  config:
    basePath: s3://huditest/hudi-dataset/people
    hoodie.hadoop.fs.s3a.endpoint: http://minio:9000
    hoodie.hadoop.fs.s3a.access.key: admin
    hoodie.hadoop.fs.s3a.secret.key: password
    hoodie.hadoop.fs.s3a.path.style.access: true
    hoodie.hadoop.fs.s3a.connection.ssl.enabled: false

验证

应用启动后会通过Hadoop S3A客户端正确连接Minio,解决403权限拒绝问题。

内容的提问来源于stack exchange,提问作者Albert T. Wong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 17:02:11