cheverato v4,添加minio,选择S3 compatible,填写信息时,提示无法通过。

原因是endpoint只能以IP的形式,不能以域名。

请输入代码

而我们本地搭建的minio基本都是动态IP,必须使用域名才能长久访问。

解决办法:

1.网站目录里找到本文件:/app/src/Legacy/Classes/Storage.php,双击打开。并找到如下这段代码(580多行)

            case 's3compatible':
            $factoria = [
                'version' => '2006-03-01',
                'region' => $storage['region'],
                'command.params' => ['PathStyle' => true],
                'credentials' => [
                    'key' => $storage['key'],
                    'secret' => $storage['secret'],
                ],
                'http' => [
                    'verify' => CaBundle::getBundledCaBundlePath(),
                ],
            ];
            if ($api_type == 's3compatible') {
                $factoria['endpoint'] = $storage['server'];
            }


添加如下: 'use_path_style_endpoint' => true, 'signatureVersion' => 'v2'   (如下第13 14行)

            case 's3compatible':
            $factoria = [
                'version' => '2006-03-01',
                'region' => $storage['region'],
                'command.params' => ['PathStyle' => true],
                'credentials' => [
                    'key' => $storage['key'],
                    'secret' => $storage['secret'],
                ],
                'http' => [
                    'verify' => CaBundle::getBundledCaBundlePath(),
                ],
                'use_path_style_endpoint' => true,
                'signatureVersion' => 'v2'
            ];
            if ($api_type == 's3compatible') {
                $factoria['endpoint'] = $storage['server'];
            }


保存.

minio对象存储的endpoint可以使用域名了。

注意:

V3版本的文件位置在:

  1. app/app/lib/classes/class.storage.php
  2. app/lib/classes/class.storage.php
版权属于:yusuble
本文链接:https://blog.suble.cn/archives/1244.html
本站未注明转载的文章均为原创,并采用 CC BY-NC-SA 4.0 授权协议,转载请注明来源,谢谢!