在 Laravel 上使用 League/flysystem-aws-s3-v3 上传文件到 Minio 时出错

发布时间:2021-02-25 10:08

我在尝试将文件上传到 Minio 对象存储服务器(类似于 AWS S3)时出错。 我的端点使用主机名,例如 example.com,存储桶是“mybucket”。 但是当我上传文件时出现这样的错误:

Error executing "ListObjects" on "http://mybucket.example.com/?prefix=xxxx&max-keys=1&encoding-type=url"; AWS HTTP error: cURL error 6: Could not resolve host: mybucket.example.com 

lib 似乎在服务器主机名前面添加了bucket-name,因此在解析主机名时会出错。但是当我点击上传到服务器 IP 地址时没有发生这个错误。

目前我使用的是 League/flysystem-aws-s3-v3:1.0.29 PHP 7.3.9 Laravel 7.2

回答1

当前默认配置是存储桶名称作为子域。如果您想使用子目录样式作为存储桶名称,您可以在配置中或手动初始化 'use_path_style_endpoint' => true 对象时使用 S3Client。你可以在这里阅读相关的 Minio 配置: