Scale up as you grow — whether you're running one virtual machine or ten thousand.

From GPU-powered inference and Kubernetes to managed databases and storage, get everything you need to build, scale, and deploy intelligent applications.

I’m using the PHP AWS SDK, as suggested by a mod. (here)
I’m using the putObjectAcl function from the AWS PHP SDK. And when I input a Filepath or Filename, that contains symbols like @ (at) the function returns an Exception. I opened an Issue Ticket on the repo of the PHP AWS SDK addressing this issue, to make sure, that the SDK itself isn’t the problem. (The Issue Ticket)
And the answer from a contributor concludes that the problem has to be on Digitaloceans end. In more detail, that Digitalcoean isn’t encoding the URL again, thus the File cant be found.
root@debian:~/test2# php setPublic.php
PHP Fatal error: Uncaught exception 'Aws\S3\Exception\S3Exception' with message 'Error executing "PutObjectAcl" on "https://SPACE_NAME.fra1.digitaloceanspaces.com/%40acex/mod.cpp?acl"; AWS HTTP error: Client error: `PUT https://SPACE_NAME.fra1.digitaloceanspaces.com/%40acex/mod.cpp?acl` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><RequestId>tx000000000000009ee57cd-005d26 (truncated...)
SignatureDoesNotMatch (client): - <?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><RequestId>tx000000000000009ee57cd-005d2636b1-1c0f65-fra1a</RequestId><HostId>1c0f65-fra1a-fra1</HostId></Error>'
GuzzleHttp\Exception\ClientException: Client error: `PUT https://SPACE_NAME.fra1.digitaloceanspaces.com/%40acex/mod.cpp?acl` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="UTF-8"?><Error><Code>SignatureDoesNotMatch</Code><RequestId>tx000000000000009ee57cd-005d26 (truncated...)
in /root/test2/ven in /root/test2/vendor/aws/aws-sdk-php/src/WrappedHttpHandler.php on line 195
<?php
require 'vendor/autoload.php';
use Aws\S3\S3Client;
$key = "PRIVATE_KEY";
$secret = "PRIVATE_SECRET";
$space = "SPACE_NAME";
$region = "REGION";
$host = "digitaloceanspaces.com";
$endpoint = "https://".$space.".".$region.".".$host;
$client = Aws\S3\S3Client::factory(array(
'region' => $region,
'version' => 'latest',
'endpoint' => $endpoint,
'credentials' => array(
'key' => $key,
'secret' => $secret,
),
'bucket_endpoint' => true,
'signature_version' => 'v4-unsigned-body'
));
$aclHeader = ["ACL" => "public-read"];
$acl = array_merge(array("Bucket" => $space, "Key" => '@acex/mod.cpp'), $aclHeader);
$client->putObjectAcl($acl);
2528527458a540fba5c38cc921bb27
jhonnydepp12
Peter Alison
Arnold Hendriks
384d3f11289345379905a243f7b817
Laveenk16
Laveenk16
e8ab71f9e5914ffba3313f6ac33bb3
1c3ae38719bc49de9abf588e704583
lincoln
76ac182105344670910aa7c62ff2a3
c3d53dcb398b418288ff41b565183d