Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【Bug】存储单元使用Minio,链接地址使用域名就会出问题 #458

Closed
codeboysky opened this issue Jun 25, 2022 · 6 comments
Closed

Comments

@codeboysky
Copy link

codeboysky commented Jun 25, 2022

存储方式使用Minio方式时,连接地址使用域名则实际访问的域名是https://桶名.域名
复现步骤:

首先修改了 vendor/league/flysystem-aws-s3-v3/AwsS3V3Adapter.php 代码用于帮助打印问题
image

先决条件:
连接地址使用域名:https://example.domain.com:7000,储存桶名称:lsky-pro,区域:us-east-1

日志:
[2022-06-25 15:42:48] prod.ERROR: Web 上传文件时发生异常 {"file":"/var/www/html/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php","line":195,"message":"Error executing "PutObject" on "https://lsky-pro.example.domain.com:7000/2022/06/25/62b6bc787de8e.png\"; AWS HTTP error: cURL error 60: SSL: no alternative certificate subject name matches target host name 'lsky-pro.example.domain.com' (see https://curl.haxx.se/libcurl/c/libcurl-errors.html) for https://lsky-pro.example.domain.com:7000/2022/06/25/62b6bc787de8e.png","trace":"#0 /var/www/html/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php(97): Aws\WrappedHttpHandler->parseError(Array, Object(GuzzleHttp\Psr7\Request), Object(Aws\Command), Array)
#1 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(204): Aws\WrappedHttpHandler->Aws\{closure}(Array)
#2 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(169): GuzzleHttp\Promise\Promise::callHandler(2, Array, NULL)
#3 /var/www/html/vendor/guzzlehttp/promises/src/RejectedPromise.php(42): GuzzleHttp\Promise\Promise::GuzzleHttp\Promise\{closure}(Array)
#4 /var/www/html/vendor/guzzlehttp/promises/src/TaskQueue.php(48): GuzzleHttp\Promise\RejectedPromise::GuzzleHttp\Promise\{closure}()
#5 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(158): GuzzleHttp\Promise\TaskQueue->run()
#6 /var/www/html/vendor/guzzlehttp/guzzle/src/Handler/CurlMultiHandler.php(183): GuzzleHttp\Handler\CurlMultiHandler->tick()
#7 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(248): GuzzleHttp\Handler\CurlMultiHandler->execute(true)
#8 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(224): GuzzleHttp\Promise\Promise->invokeWaitFn()
#9 /var/www/html/vendor/guzzlehttp/promises/src/Promise.php(269): GuzzleHttp\Promise\Promise->waitIfPending()

@wisp-x
Copy link
Collaborator

wisp-x commented Jun 27, 2022

可能和 php ssl 证书问题相关。
下载证书 https://curl.haxx.se/ca/cacert.pem,然后打开 php.ini 配置文件搜索关键字:
curl.cainfoopenssl.cafileopenssl.capath,将这些配置替换成下载的证书路径。

参考链接:https://laracasts.com/discuss/channels/laravel/aws-http-error-curl-error-60-ssl-certificate-problem?page=1&replyId=494837

@codeboysky
Copy link
Author

谢谢关注该问题,我已经按照指引调整了php的参数,但是问题依旧存在。
从日志中其实可以发现,正确的域名应该是example.domain.com:7000,但是代码却要求访问lsky-pro.example.domain.com,造成域名无法解析所以上传失败了

@codeboysky
Copy link
Author

image

@wwwzhouhui
Copy link

@codeboysky 你的问题解决了没?如何解决的?

@codeboysky
Copy link
Author

@codeboysky 你的问题解决了没?如何解决的?

我也没搞定,最后是使用了http,看网上说应该是minio的client包版本低了造成的,你可以试试升级下看看能搞定不

@codeboysky
Copy link
Author

问题同 #683 @wwwzhouhui

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants