【发布时间】:2022-09-23 13:32:02
【问题描述】:
我们正在使用 Minio 对 S3 进行本地测试,并且我们使用 Minio 创建了docker-compose file,我们的应用程序依赖项如下:
Docker-撰写文件:
version: \"2.1\"
services:
minio:
image: minio/minio
container_name: minio
ports:
- 9001:9001
volumes:
- minio_storage:/data
environment:
MINIO_ACCESS_KEY: minio
MINIO_SECRET_KEY: minio123
MINIO_REGION: us-east-1
command: server /data --console-address \":9001\"
mem_limit: 512m
populate-minio-data:
container_name: \"minio-data\"
image: minio/mc
volumes:
- ./hello.txt:/tmp/hello.txt
entrypoint: >
/bin/sh -c \"
/usr/bin/mc config host rm local;
/usr/bin/mc config host add --quiet --api s3v4 local http://minio:9001 minio minio123;
/usr/bin/mc mb --quiet local/somebucketname1/;
/usr/bin/mc policy set public local/somebucketname1;
/usr/bin/mc cp /tmp/hello.txt local/somebucketname1/hello.txt;
\"
depends_on:
- minio
archive-api-app:
image: openjdk:11
container_name: \"archive-api-app\"
ports:
- 8091:6001
volumes:
- /home/apcuser/dev/projects/ea-archive-service-v2/projects/application/archive-api:/app
command: [ \'java\', \'-jar\', \'/app/build/libs/archive-api-1.0.0.jar\' ]
env_file:
- ./vars/default.env
volumes:
minio_storage:
在java代码中,我已经配置了MINIO URL 作为 S3 端点如下:
@Bean
public AmazonS3 getS3Client() {
return AmazonS3ClientBuilder.standard()
.withClientConfiguration(new ClientConfiguration().withMaxConnections(maxConnections)
.withConnectionTimeout(connectionTimeout).withMaxErrorRetry(maxRetry))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(\"http://minio:9001\", \"us-east-1\"))
.build();
}
有一次,我运行docker-compose file,我可以在我的本地Linux 机器上看到minio-ui,如下所示:
但是我在 Minio 中没有看到任何数据,相反,我在 minio 中上传数据时看到了以下错误:
Attaching to minio-data
minio-data | Removed `local` successfully.
minio-data | Added `local` successfully.
minio-data | mc: <ERROR> Unable to make bucket `local/somebucketname1/`. S3 API Requests must be made to API port.
minio-data | mc: <ERROR> Unable to set policy `public` for `local/somebucketname1`. S3 API Requests must be made to API port.
minio-data | `/tmp/hello.txt` -> `local/somebucketname1/hello.txt`
minio-data | mc: <ERROR> Failed to copy `/tmp/hello.txt`. S3 API Requests must be made to API port.
minio-data | Total: 0 B, Transferred: 0 B, Speed: 0 B/s
当我尝试从本地 linux 主机列出 MINIO 数据时,我甚至看到同样的错误:
export AWS_ACCESS_KEY_ID=minio
export AWS_SECRET_ACCESS_KEY=minio123
export AWS_REGION=us-east-1
aws --endpoint-url http://127.0.0.1:9001 s3 ls
**An error occurred (InvalidArgument) when calling the ListBuckets operation: S3 API Requests must be made to API port.**
有人可以帮忙吗?
标签: docker amazon-s3 docker-compose minio