How to set spaces ACL to public

November 26, 2019 96 views
DigitalOcean Spaces

So I set up a space with CDN.
When I copy files to it, they become private by default.

So I set the bucket ACL to public read:

aws s3api --endpoint=https://fra1.digitaloceanspaces.com put-bucket-acl --acl public-read --bucket $MYBUCKETNAME

When I read it back it is indeed public:

aws s3api --endpoint=https://fra1.digitaloceanspaces.com get-bucket-acl --bucket $MYBUCKETNAME
{
    "Owner": {
        "DisplayName": "REDACTED", 
        "ID": "REDACTED"
    }, 
    "Grants": [
        {
            "Grantee": {
                "Type": "Group", 
                "URI": "http://acs.amazonaws.com/groups/global/AllUsers"
            }, 
            "Permission": "READ"
        }, 
        {
            "Grantee": {
                "Type": "CanonicalUser", 
                "DisplayName": "REDACTED", 
                "ID": "REDACTED"
            }, 
            "Permission": "FULL_CONTROL"
        }
    ]
}

However, when I copy new files to the bucket, they’re still set to ‘private’. I have to do a recursive set per file, but this takes a long time.

s3cmd setacl s3://$MYBUCKETNAME/ --acl-public --recursive

How can I set the default ACL to public so that new files are public by default?

edited by MattIPv4
Be the first one to answer this question.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!