--- title: "Connect with s3cmd" description: "Install s3cmd on Linux, macOS, or Windows, configure it with your access key, and list and sync files with your E2E Object Storage bucket." content_type: "how-to" product: "object-storage" platform: "MyAccount" url: "/myaccount/object-storage/how-to/connect-with-s3cmd/" topic: ["create-and-connect"] relationships: {"requires":["/myaccount/object-storage/how-to/generate-an-access-key/"]} --- # Connect with s3cmd `s3cmd` is a command-line tool for S3-compatible storage that works the same way against Object Storage as it does against Amazon S3. You need a bucket and an access key first; see [Generate an access key](/myaccount/object-storage/how-to/generate-an-access-key/). ## Install s3cmd On **Linux**, install it from your distribution's package manager: `yum install s3cmd` on CentOS or RHEL, `sudo apt-get install s3cmd` on Ubuntu or Debian. On **macOS**, use Homebrew: `brew install s3cmd`. On **Windows**, s3cmd runs on Python, so you install Python first and then s3cmd; [Install s3cmd on Windows](#install-s3cmd-on-windows) walks through both. ### Install s3cmd on Windows s3cmd supports Python 3 from its version 2 onward. Python 3.12 is the newest version the s3cmd project lists, so it is a good choice. 1. Download the Python 3.12 installer from [python.org/downloads/windows](https://www.python.org/downloads/windows/) and run it. On the installer's first page, tick the option to add Python to `PATH`, so you can run `python` from any Command Prompt. If you missed it, run the installer again, choose **Modify**, and tick it there. 2. Open a new Command Prompt and check that Windows finds Python: ```bat frame="none" python --version ``` It prints the version you installed, such as: ```text Python 3.12.10 ``` 3. Install the one library s3cmd needs to run: ```bat frame="none" python -m pip install python-dateutil ``` 4. Download the s3cmd `.zip` file from its [official page](https://s3tools.org/download) and extract it. Rename the folder it creates to `C:\s3cmd`, so that the `s3cmd` file sits directly inside that folder. 5. Move into the folder and check that s3cmd starts: ```bat frame="none" cd C:\s3cmd python s3cmd --version ``` It prints its version, such as `s3cmd version 2.4.0`. On Windows, you start s3cmd through Python from this folder. Every command on this page works the same way with `python` put in front of it: `python s3cmd --configure`, `python s3cmd ls s3://`, and so on. ## Configure s3cmd Run the configuration wizard: ```bash frame="none" s3cmd --configure ``` Enter your access key and secret key when asked. For **S3 Endpoint**, enter `objectstore.e2enetworks.net` for a Delhi bucket, or the Chennai endpoint from [S3 compatibility](/myaccount/object-storage/concepts/s3-compatibility/) for one there. For the DNS-style bucket template, enter `%(bucket)s.objectstore.e2enetworks.net` in Delhi, or the same pattern with your region's endpoint in place of it: `%(bucket)s.` followed by the Chennai endpoint for a bucket there. The DNS-style template is how s3cmd builds each bucket's address from your endpoint: the `%(bucket)s.` part is where s3cmd substitutes the bucket name, so every bucket gets an address like `.objectstore.e2enetworks.net`. Leave the region blank, and accept the rest of the defaults. When it asks whether to test your credentials, answering **y** shows a permission error. This is expected; see [S3 compatibility](/myaccount/object-storage/concepts/s3-compatibility/) for why. Answer **y** again to save the configuration. s3cmd prints where it saved it, for example `Configuration saved to '/home//.s3cfg'`. You can also skip the wizard and edit `~/.s3cfg` directly instead: ```text host_base = objectstore.e2enetworks.net host_bucket = %(bucket)s.objectstore.e2enetworks.net access_key = secret_key = ``` Use `in-south1-objectstore.e2enetworks.net` in place of `objectstore.e2enetworks.net` in both `host_base` and `host_bucket` when your bucket is in Chennai. On Windows, the same settings live in a file named `s3cmd.ini` in your user's application data folder, and the wizard prints its full path when it saves. To open it in Notepad: ```bat frame="none" notepad %APPDATA%\s3cmd.ini ``` ## Use s3cmd with your buckets List a bucket's contents (an access key cannot list every bucket on your account, so name one): ```bash frame="none" s3cmd ls s3:// ``` An empty bucket returns nothing; an object in it lists like this: ```text 2026-01-15 09:32 0 s3:/// ``` Upload or sync a file: ```bash frame="none" s3cmd sync s3:/// ``` A successful sync looks like this: ```text upload: 'report.pdf' -> 's3:///report.pdf' [1 of 1] 1258291 of 1258291 100% in 0s 3.81 MB/s done Done. Uploaded 1258291 bytes in 0.3 seconds, 3.81 MB/s. ``` Run `s3cmd ls s3://` again, and the file is in the list. From here on, every s3cmd command reads the keys and endpoint from `~/.s3cfg`, or from `s3cmd.ini` on Windows. For jobs that run on a schedule, see [Back up a MySQL database to E2E Object Storage](/myaccount/object-storage/how-to/back-up-a-mysql-database-to-object-storage/) or [Archive logs to E2E Object Storage with logrotate and s3cmd](/myaccount/object-storage/how-to/archive-logs-with-logrotate-and-s3cmd/). If the credential test during setup showed a permission error, see [Troubleshooting E2E Object Storage](/myaccount/object-storage/troubleshooting/object-storage/#my-s3cmd-test-shows-a-permissions-error-even-though-my-uploads-work-fine).