Anyone find any way of uploading images to a Google Cloud Bucket using Wappler?
I'm currently going with the supposed interoperability setup in Google Cloud Buckets, I should theoretically be able to use the Wappler S3 Provider set to "custom."
Here are my actions:
Globals > S3 Storage > myuploader
S3 Provider Properties
Name: myuploader
Service: Custom
Endpoint: https://storage.googleapis.com
Region:
Access Key Id: ###...
Secret Access Key: ###...
Force path style: checked
S3 PUT FILE PROPERTIES
Provider: myuploader
Name: putFile
Bucket: my-bucket
Key: image.webp
Path: /ufiles/image.webp
Content Type:
Content Disposition:
Access: Public Read
Output Result: checked
I've turned on debugging in Wappler. When I run the upload Server Action, I get a malformed cURL. Wappler seems to scramble the https and my bucket name, but doesn't use the endpoint anywhere.
What can I do?
{
"code": 0,
"file": "/var/www/html/dmxConnectLib/aws/Aws/WrappedHttpHandler.php",
"line": 195,
"message": "Error executing \"PutObject\" on \"https://my-bucket.https//my-bucket/image.webp\"; AWS HTTP error: cURL error 6: Could not resolve host: my-bucket.https (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)",
"trace": "#0 /var/www/html/dmxConnectLib/aws/Aws/WrappedHttpHandler.php(97): Aws\\WrappedHttpHandler-\u003EparseError(Array, Object(GuzzleHttp\\Psr7\\Request), Object(Aws\\Command), Array)\n#1 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(203): Aws\\WrappedHttpHandler-\u003EAws\\{closure}(Array)\n#2 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(174): GuzzleHttp\\Promise\\Promise::callHandler(2, Array, Array)\n#3 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/RejectedPromise.php(40): GuzzleHttp\\Promise\\Promise::GuzzleHttp\\Promise\\{closure}(Array)\n#4 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/TaskQueue.php(47): GuzzleHttp\\Promise\\RejectedPromise::GuzzleHttp\\Promise\\{closure}()\n#5 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Handler/CurlMultiHandler.php(118): GuzzleHttp\\Promise\\TaskQueue-\u003Erun()\n#6 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Handler/CurlMultiHandler.php(145): GuzzleHttp\\Handler\\CurlMultiHandler-\u003Etick()\n#7 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(246): GuzzleHttp\\Handler\\CurlMultiHandler-\u003Eexecute(true)\n#8 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(223): GuzzleHttp\\Promise\\Promise-\u003EinvokeWaitFn()\n#9 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(267): GuzzleHttp\\Promise\\Promise-\u003EwaitIfPending()\n#10 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(225): GuzzleHttp\\Promise\\Promise-\u003EinvokeWaitList()\n#11 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(267): GuzzleHttp\\Promise\\Promise-\u003EwaitIfPending()\n#12 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(225): GuzzleHttp\\Promise\\Promise-\u003EinvokeWaitList()\n#13 /var/www/html/dmxConnectLib/aws/GuzzleHttp/Promise/Promise.php(62): GuzzleHttp\\Promise\\Promise-\u003EwaitIfPending()\n#14 /var/www/html/dmxConnectLib/aws/Aws/AwsClientTrait.php(58): GuzzleHttp\\Promise\\Promise-\u003Ewait()\n#15 /var/www/html/dmxConnectLib/aws/Aws/AwsClientTrait.php(86): Aws\\AwsClient-\u003Eexecute(Object(Aws\\Command))\n#16 /var/www/html/dmxConnectLib/modules/s3.php(152): Aws\\AwsClient-\u003E__call('putObject', Array)\n#17 /var/www/html/dmxConnectLib/lib/App.php(223): modules\\s3-\u003EputFile(Object(stdClass), 'putFile', NULL)\n#18 /var/www/html/dmxConnectLib/lib/App.php(163): lib\\App-\u003EexecSteps(Object(stdClass))\n#19 /var/www/html/dmxConnectLib/lib/App.php(113): lib\\App-\u003Eexec(Object(stdClass), false)\n#20 /var/www/html/dmxConnect/api/images/uploadImage.php(8): lib\\App-\u003Edefine(Object(stdClass))\n#21 {main}"
}