Most S3-compatible storage providers like UpCloud and DigitalOcean provide a dashboard for managing our storage. But, usually, we face some browser or web-related issues in certain conditions for example when we try to upload large amounts of files. There are some CLI tools out there that we can use for managing our storage like uploading files, migrating files to another bucket, etc.
One of the popular CLI tools is S3cmd
. For instance, I use an object storage service provided by UpCloud. For this past year, I migrated many of my services from AWS and DigitalOcean to UpCloud because of its cost and performance. I found that UpCloud actively develops new features or services and improves its infrastructure performance.
To install S3cmd
, we need to have Python and PIP in our machine. After that, we can run the following command to install S3cmd
.
pip install s3cmd
Then, we can configure the tool by running the following command. Four fields are important in our case: access key ID, secret access key, storage endpoint address, and address templating. In UpCloud, the endpoint address is like your-storage-name.sg-sin1.upcloudobjects.com
. While the address templating can be like %(bucket).your-storage-name.sg-sin1.upcloudobjects.com
. It will let us access any bucket just by using this syntax: s3://your-bucket-name
, without the complete address.
s3cmd --configure
After finishing the configuration, we can start to utilize the tool. The following example shows how to upload several files stored in a local folder to a bucket.
s3cmd put --recursive /path/to/source-folder/ s3://your-bucket-name/target-folder/
We should remember the trailing slash on the source folder path. It will copy only the contents of the source folder to the target folder. If there is no trailing slash, it will copy the folder and its content into the target folder.
We can also move files from one folder to another folder in our bucket.
s3cmd mv --recursive s3://your-bucket-name/source-folder/ s3://your-bucket-name/target-folder/
The following command is used to download files from the bucket.
s3cmd get s3://your-bucket-name/images/source.jpg /path/to/images/target.jpg
We can check the status of disk usage (e.g. size and object number) of a folder in our bucket by the following command.
s3cmd du s3://your-bucket-name/folder
There are many more commands that we can explore in the manuals.
Comments
Post a Comment