S3cmd
S3cmd is a free command line tool and client to load, retrieve, and manage data in S3. It has over 60 command line options, including multipart uploads, encryption, incremental backup, S3 sync, ACL and metadata management, bucket size, and bucket policies (Linux, macOS).
Configuration
Install S3cmd:
on CentOS/RHEL and Fedora:
sudo dnf install s3cmdon Ubuntu/Debian:
sudo apt-get install s3cmdon macOS, use Brew:
brew install s3cmd
You can also install the latest version from SourceForge.
Steps
1. Run the following command in a terminal: s3cmd --configure. This will guide you through the interactive installation process.
2. Enter your Access Key and Secret key. To get them, see Generate a Key.
3. Specify the region of your bucket for Default Region. Example: eu-central-2. For information on the supported IONOS CLOUD Object Storage service endpoints, see Endpoints.
4. Specify the Endpoint for the selected region from the same list, such as s3-eu-central-2.ionoscloud.com.
5. Insert the same Endpoint again for DNS-style bucket+hostname:port template.
6. Specify or skip password for Encryption password.
7. Press Enter for the Path to GPG program.
8. Press Enter for the Use HTTPS protocol.
9. Press Enter for the HTTP Proxy server name.
10. Press Enter for the Test access with supplied credentials? [Y/n]. S3cmd will try to test the connection.
11. Upon the test pass, save the configuration by typing y and pressing Enter. The configuration is saved in the .s3cfg file.
Result: The S3cmd configuration is complete.
Set up multiple configurations
To work with more than one region or different providers, you can set up multiple configurations.
Use s3cmd -configure --config=ionos-fra to save the configuration for a specific location or provider. Execute s3cmd with the -c option to override the default configuration file. For example, list the object in the bucket:
You can also specify an endpoint directly on the command line to override the default setting. The Access Key and Secret Key are region-independent, so s3cmd can take them from the default configuration:
Specify it with an Access Key and the Secret Key:
Use s3cmd with Object Storage
For the --host option, see the list of supported IONOS CLOUD Object Storage service Endpoints. If you are only using the region from the configuration file, you can skip this option.
Examples
List buckets (will list even buckets from other regions):
Create a bucket:
Create a bucket my-bucket in the region de (Frankfurt, Germany):
Create a bucket my-bucket in the region eu-central-2 (Berlin, Germany):
Create a bucket my-bucket in the region eu-south-2 (Logrono, Spain):
List objects of the bucket my-bucket:
Upload filename.txt from the current directory to the bucket my-bucket:
Copy the contents of the local directory my-dir to the bucket my-bucket with the prefix my-dir:
Copy all objects from my-source-bucket to my-dest-bucket excluding .zip files (or use mv to move objects):
Download all the objects from the my-bucket bucket to the local directory my-dir (the directory should exist):
Synchronize a directory to S3 (checks files using size and md5 checksum):
Get Cross-Origin Resource Sharing (CORS) configuration:
Set up Cross-Origin Resource Sharing (CORS) configuration:
cors_rules.xml:
Delete CORS from the bucket:
Get information about buckets or objects:
s3cmd info s3://my-buckets3cmd info s3://my-bucket/my-object
Generate a public URL for download that will be available for 10 minutes (600 seconds):
Set up a lifetime policy for a bucket (delete objects older than 1 day):
detete-after-one-day.xml:
Encrypt and upload files: This option allows you to encrypt files before uploading. To use it, you have to run s3cmd --configure and fill out the path to the GNU Privacy Guard (GPG) utility and the encryption password. There is no need to use special parameters to decrypt the file on downloading with get option as this is done automatically using the data from the configuration file.
Add or modify user-defined metadata: Use headers starting with x-amz-meta- and store data in a set of key-value pairs. The user-defined metadata is limited to 2 KB in size. Its size is measured by taking the sum of the number of bytes in the UTF-8 encoding of each key and value.
s3cmd modify --add-header x-amz-meta-my_key:my_value s3://my-bucket/prefix/filename.txtCheck the changes:
Delete metadata:
For more information, see S3cmd Usage and S3cmd FAQs.
Last updated
Was this helpful?