How to set the access control list (ACL) for an S3 object using s3cmd?

To set the Access Control List (ACL) for an S3 object using s3cmd, you can follow these steps:

  1. Install s3cmd: If you haven't installed s3cmd already, you can install it by running the appropriate command for your operating system. For example, on Ubuntu you can use the command sudo apt-get install s3cmd.

  2. Configure s3cmd: Once installed, you need to configure s3cmd with your AWS credentials. Run the command s3cmd --configure and follow the instructions to provide your AWS access key and secret key.

  3. Set the ACL: Now you can set the ACL for an S3 object using the setacl command. The basic syntax is s3cmd setacl --acl-<PERMISSION> s3://<BUCKET_NAME>/<OBJECT_KEY>. Replace <PERMISSION> with the desired permission level, and <BUCKET_NAME> and <OBJECT_KEY> with the appropriate S3 bucket and object key.

    For example, to set the ACL to private for an object named "file.jpg" in a bucket named "my-bucket", you can use the following command:

    s3cmd setacl --acl-private s3://my-bucket/file.jpg

    Similarly, you can set other ACL permissions, such as public-read, public-read-write, authenticated-read, etc., by replacing --acl-private with the desired permission option.

That's it! You have successfully set the ACL for an S3 object using s3cmd.