Unable to upload to Wasabi S3 bucket

Wappler: 5.5.3
OS: MacOS M1
Server: PHP

I’m trying to upload a single file to a Wasabi bucket but it just briefly shows the progress indicator and then goes back to the ‘upload’ step.

See this thread for some more info:

Also, I downloaded all the S3 files from GIT following the link above and that got me this far but doing a files update in Wappler will replace all those files with the ones shipped with Wappler which cause even more errors.

@Teodor, can you help with this? I need to be able to upload a single file into a Wasabi bucket but the files provided by Wappler don’t work.

Is anyone able to help with this? I’ve been working on this all week and was hoping to go live at the end of the month.

I’ve just signed up for the Wasabi S3 and tested locally. I can upload a file using the App Connect S3 Upload component without any issues. Nothing special in my setup:

S3 setup:

The server action:

The S3 Component on the page:

The response in the dev tools:

File successfully uploaded:

Thanks @Teodor. Can I just check that you’re using PHP?

No, thats nodejs site running on the local Wappler node server.

I think the issue is with PHP then. Your screenshots are identical to what I’ve done. Can you do a test with PHP?

I’ve gone back to the default files that Wappler puts into the dmxConnectLib/aws folder and I’m back to getting an error from the SC script:

1. code: 0

2. file: "/home/sites/14a/5/56xxxxx11/my/dmxConnectLib/aws/Aws/S3/RegionalEndpoint/ConfigurationProvider.php"

3. line: 83

4. message: "Use of \"self\" in callables is deprecated"

5. trace: "#0 [internal function]: exception_error_handler(8192, 'Use of \"self\" i...', '/home/sites/14a...', 83)\n#1 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/aws/Aws/S3/RegionalEndpoint/ConfigurationProvider.php(83): call_user_func_array('self::chain', Array)\n#2 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/aws/Aws/S3/S3Client.php(326): Aws\\S3\\RegionalEndpoint\\ConfigurationProvider::defaultProvider(Array)\n#3 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/modules/s3.php(24): Aws\\S3\\S3Client->__construct(Array)\n#4 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(204): modules\\s3->provider(Object(stdClass), 'Wasabi', NULL)\n#5 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(144): lib\\App->execSteps(Object(stdClass))\n#6 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(170): lib\\App->exec(Object(stdClass), true)\n#7 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(176): lib\\App->execSteps(Object(stdClass))\n#8 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(144): lib\\App->execSteps(Array)\n#9 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(133): lib\\App->exec(Object(stdClass), false)\n#10 /home/sites/14a/5/56xxxxx11/my/dmxConnectLib/lib/App.php(111): lib\\App->exec(Object(stdClass))\n#11 /home/sites/14a/5/56xxxxx11/my/dmxConnect/api/MyProfile/Certificates/WasabiTest.php(7): lib\\App->define(Object(stdClass))\n#12 {main}"

OK, I finally have it working. I re-downloaded the files from https://github.com/aws/aws-sdk-php/releases/tag/3.254.1 and uploaded the folder to the server. It looks like the files supplied by Wappler 5.5.3 is the problem.

I now have the issue where Wappler is wanting to replace those files, well 158 of them, with the ones it supplies so I can’t keep everything up-to-date using the Project Assets Updater.

Wich PHP version do you use?

Hi @patrick. This particular project is v8.2 but I also tried it with v8.1. Most of my other projects are still on v7.4 but I’ve not used S3 with those. I’m happy to try any PHP version if you need feedback.

I think we will probably have to write our own simple S3 client instead of relying on the huge AWS SDK. The full SDK is ~36MB which we stripped down to ~3MB. There are multiple updates each week of the SDK which also makes it hard to keep it up-to-date and most updates are for other AWS services which we don’t need, only updates we are interested in are the ones S3 related or PHP related like with the deprecated message you have.


Thanks again. I must admit I was stunned at the size of the AWS folder. Using scripts which change so frequently sounds like a nightmare so having your own is a much better solution.

For now, I’ll leave the folder as it is so it’s working but it does give me problems every time I open the project as Wappler wants to update the files that don’t match.

Do you know what kind of timescale you might be looking at to write your own? Is there a way for me to continue with the SDK scripts while still updating other files as needed without lots of manual checking/unchecking files every time?

Or can you update the files for the next update so they work for everyone for now?

Is it possible that this could be addressed in today’s update? Every time I open the project I am greeted by all the S3 scripts which need updating but if I update them then the Wasabi functionality breaks.

When you use Composer it will install the latest version of AWS.

I’m not using Composer.

Well that is the whole idea of Composer, that we included in the last update - to install and manage the libraries that are needed for your project. We added it there for use cases just like yours. So just enable it in the project settings.

But this is still beta, isn’t it? Safe to enable?

It is a beta, but you can enable it, you can always disable it and manually copy the needed files.

1 Like