FriendsOfFlarum / upload

The file upload extension with insane intelligence for your Flarum forum.
https://discuss.flarum.org/d/4154
MIT License
177 stars 96 forks source link

500 Error when s3 config is blank #246

Closed littlegolden closed 3 years ago

littlegolden commented 3 years ago

Description:

  1. Select local storage, save settings, then upload images, get feedback 500 errors:
POST http://www.xxx.com/api/fof/upload

InvalidArgumentException: Missing required client configuration options: 

region: (string)

  A "region" configuration value is required for the "s3" service
  (e.g., "us-west-2"). A list of available public regions and endpoints can be
  found at http://docs.aws.amazon.com/general/latest/gr/rande.html. in /www/wwwroot/flarum/vendor/aws/aws-sdk-php/src/ClientResolver.php:406
Stack trace:
#0 /www/wwwroot/flarum/vendor/aws/aws-sdk-php/src/ClientResolver.php(302): Aws\ClientResolver->throwRequired(Array)
#1 /www/wwwroot/flarum/vendor/aws/aws-sdk-php/src/AwsClient.php(199): Aws\ClientResolver->resolve(Array, Object(Aws\HandlerList))
#2 /www/wwwroot/flarum/vendor/aws/aws-sdk-php/src/S3/S3Client.php(346): Aws\AwsClient->__construct(Array)
#3 /www/wwwroot/flarum/vendor/fof/upload/src/Adapters/Manager.php(83): Aws\S3\S3Client->__construct(Array)
#4 /www/wwwroot/flarum/vendor/fof/upload/src/Adapters/Manager.php(64): FoF\Upload\Adapters\Manager->awsS3(Object(FoF\Upload\Helpers\Settings))
#5 [internal function]: FoF\Upload\Adapters\Manager->FoF\Upload\Adapters\{closure}(true, 'aws-s3')
#6 /www/wwwroot/flarum/vendor/illuminate/support/Collection.php(638): array_map(Object(Closure), Array, Array)
#7 /www/wwwroot/flarum/vendor/fof/upload/src/Adapters/Manager.php(65): Illuminate\Support\Collection->map(Object(Closure))
#8 /www/wwwroot/flarum/vendor/fof/upload/src/Commands/UploadHandler.php(175): FoF\Upload\Adapters\Manager->instantiate()
#9 /www/wwwroot/flarum/vendor/fof/upload/src/Commands/UploadHandler.php(97): FoF\Upload\Commands\UploadHandler->getAdapter('local')
#10 [internal function]: FoF\Upload\Commands\UploadHandler->FoF\Upload\Commands\{closure}(Object(Laminas\Diactoros\UploadedFile), 0)
#11 /www/wwwroot/flarum/vendor/illuminate/support/Collection.php(638): array_map(Object(Closure), Array, Array)
#12 /www/wwwroot/flarum/vendor/fof/upload/src/Commands/UploadHandler.php(156): Illuminate\Support\Collection->map(Object(Closure))
#13 /www/wwwroot/flarum/vendor/illuminate/bus/Dispatcher.php(90): FoF\Upload\Commands\UploadHandler->handle(Object(FoF\Upload\Commands\Upload))
#14 /www/wwwroot/flarum/vendor/illuminate/pipeline/Pipeline.php(130): Illuminate\Bus\Dispatcher->Illuminate\Bus\{closure}(Object(FoF\Upload\Commands\Upload))
#15 /www/wwwroot/flarum/vendor/illuminate/pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(FoF\Upload\Commands\Upload))
#16 /www/wwwroot/flarum/vendor/illuminate/bus/Dispatcher.php(98): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#17 /www/wwwroot/flarum/vendor/illuminate/bus/Dispatcher.php(76): Illuminate\Bus\Dispatcher->dispatchNow(Object(FoF\Upload\Commands\Upload))
#18 /www/wwwroot/flarum/vendor/fof/upload/src/Api/Controllers/UploadController.php(41): Illuminate\Bus\Dispatcher->dispatch(Object(FoF\Upload\Commands\Upload))
#19 /www/wwwroot/flarum/vendor/flarum/core/src/Http/RouteHandlerFactory.php(38): FoF\Upload\Api\Controllers\UploadController->handle(Object(Laminas\Diactoros\ServerRequest))
#20 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/DispatchRoute.php(65): Flarum\Http\RouteHandlerFactory->Flarum\Http\{closure}(Object(Laminas\Diactoros\ServerRequest), Array)
#21 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\DispatchRoute->process(Object(Laminas\Diactoros\ServerRequest), Object(Closure))
#22 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/SetLocale.php(50): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#23 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\SetLocale->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#24 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/CheckCsrfToken.php(45): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#25 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\CheckCsrfToken->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#26 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithHeader.php(55): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#27 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithHeader->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#28 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/AuthenticateWithSession.php(32): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#29 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\AuthenticateWithSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#30 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/RememberFromCookie.php(51): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#31 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\RememberFromCookie->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#32 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/StartSession.php(61): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#33 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\StartSession->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#34 /www/wwwroot/flarum/vendor/flarum/core/src/Api/Middleware/FakeHttpMethods.php(29): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#35 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Api\Middleware\FakeHttpMethods->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#36 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/ParseJsonBody.php(28): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#37 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\ParseJsonBody->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#38 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Middleware/HandleErrors.php(57): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#39 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Flarum\Http\Middleware\HandleErrors->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#40 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#41 /www/wwwroot/flarum/vendor/middlewares/request-handler/src/RequestHandler.php(84): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#42 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\RequestHandler->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#43 /www/wwwroot/flarum/vendor/middlewares/base-path-router/src/BasePathRouter.php(97): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#44 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePathRouter->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#45 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Middleware/OriginalMessages.php(42): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#46 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Laminas\Stratigility\Middleware\OriginalMessages->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#47 /www/wwwroot/flarum/vendor/middlewares/base-path/src/BasePath.php(53): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#48 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/Next.php(61): Middlewares\BasePath->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\Next))
#49 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(84): Laminas\Stratigility\Next->handle(Object(Laminas\Diactoros\ServerRequest))
#50 /www/wwwroot/flarum/vendor/laminas/laminas-stratigility/src/MiddlewarePipe.php(73): Laminas\Stratigility\MiddlewarePipe->process(Object(Laminas\Diactoros\ServerRequest), Object(Laminas\Stratigility\EmptyPipelineHandler))
#51 /www/wwwroot/flarum/vendor/laminas/laminas-httphandlerrunner/src/RequestHandlerRunner.php(96): Laminas\Stratigility\MiddlewarePipe->handle(Object(Laminas\Diactoros\ServerRequest))
#52 /www/wwwroot/flarum/vendor/flarum/core/src/Http/Server.php(42): Laminas\HttpHandlerRunner\RequestHandlerRunner->run()
#53 /www/wwwroot/flarum/public/index.php(26): Flarum\Http\Server->listen()
#54 {main}
littlegolden commented 3 years ago

image

clarkwinkelmann commented 3 years ago

Can you share the output of composer why league/flysystem-aws-s3-v3 ?

The way we implemented the extension, it seems like if you install the additional package, you MUST configure it.

You might have manually installed the package previously. Or it might be required by a different extension. The why command above should make it clear if you're unsure which situation you are in.

littlegolden commented 3 years ago
[root@ flarum]# composer why league/flysystem-aws-s3-v3
flarum/flarum  -  requires  league/flysystem-aws-s3-v3 (^1.0)  
clarkwinkelmann commented 3 years ago

Ok so it looks like you manually installed the package at some point in the past. Maybe you tested the S3 driver with this extension? Or maybe you installed another extension that included some sort of S3 integration.

You can remove it with composer remove league/flysystem-aws-s3-v3 if you no longer need it. FoF Upload will then stop trying to connect to S3.