Unable to upload files with the char ':'
I have an object storage that holds pacman software packages in it.
The problem is that those packages may contain the char :
in its version, which is part of the file name.
Such packages cannot be renamed in any other way, otherwise the pacman package manager is unable to install them.
When I try to upload such package to the object storage with:
s3cmd put --acl-public "0-test-100:1-1-any.pkg.tar.zst" "s3://express-repository/packages/"
And then I try to download the package using the Linode Manager, I get the error Error retrieving object ACL: SignatureDoesNotMatch
.
Uploading with Linode Manager crashes the website.
2 Replies
This also affects any character disallowed in NTFS.
But not any other character. Including accents, symbols, and emoji.
When the objects in your bucket have special characters, the Cloud Manager is the most restrictive tool to use. This answer from another Community Questions post titled S3 Special Characters Error has a comprehensive list of which special characters can be used with which tool.
For example, I was able to use s3cmd
to upload a similarly named object to yours using the following command:
s3cmd put --acl-public "0-test-100:1-1-any.pkg.tar.zst" "s3://my-bucket-name"
The object was also accessible via the url it was assigned, even though the details sidebar for the object shows Error retrieving object ACL: SignatureDoesNotMatch
in the Cloud Manager.
I was then able to download the object again using s3cmd
:
s3cmd get s3://5-gallon-bucket/0-test-100:1-1-any.pkg.tar.zst 0-test-100:1-1-any.pkg.tar.zst
So, with that in mind, I suggest using either s3cmd
, CyberDuck, or even the AWS CLI to interact with objects in your bucket if they need to include special characters.
Good luck!