---
title: "Using Cyberduck for S3 Storage | Hostman Docs"
description: "In this guide you will learn how to install Cyberduck on Linux, Mac and Windows. Explore commands for managing storage!"
---

> For the complete documentation index for AI agents, see [llms.txt](https://hostman.com/llms.txt).

Cyberduck is a file manager that supports FTP, SFTP, OpenStack Swift, and Amazon S3 protocols, making it convenient for working with cloud storage. In our Cyberduck profile, the OpenStack Swift protocol is used.

## Installing Cyberduck on Windows

1.  Download Cyberduck from the [official website](https://cyberduck.io/download/) and install it.
    
2.  In your bucket settings, download the Hostman profile file.
    

![817ac175 Dffa 4305 8899 29090796e90c](https://content.hostman.com/assets/b53e287f-5fa1-4f6e-945a-27cff90dfb21.png?width=1518&height=734)

3.  Place the profile in the `profiles` directory (typically located at `C:\Program Files\Cyberduck\profiles`).
    
4.  Launch Cyberduck and click on **Open Connection**.
    

![Cyberduck E Hsbuw Wdzr](https://content.hostman.com/assets/631f5b10-a761-4d27-8936-d67893be15b0.png?width=552&height=562)

_The "Open Connection" window in the [Cyberduck](https://cyberduck.io/) interface_

5.  Select the **Hostman [S3 Storage](https://hostman.com/s3-storage/)** profile.
    
6.  Enter the connection credentials.
    
    -   AccountID: enter `your_hostman_login:swift`
        
    -   Password: enter the password from the **Cyberduck** tab.
        

![D86ae21e 1d8d 4072 9ac4 2cc8995c3979](https://content.hostman.com/assets/a43260b1-6b95-4ab5-ba42-b276f826eee3.png?width=1518&height=734)

7.  Click **Connect**.
    

Once connected, you will see a list of the created buckets.

#### Console Version

Cyberduck also offers a console version for Windows. You can install it using the Chocolatey package manager:

```shell
choco install duck
```

Next download the Hostman profile file from the bucket settings in the dashboard and place it in the `C:\Program Files\Cyberduck\profiles` directory.

![817ac175 Dffa 4305 8899 29090796e90c](https://content.hostman.com/assets/b53e287f-5fa1-4f6e-945a-27cff90dfb21.png?width=1518&height=734)

## Installing Cyberduck on MacOS

1.  Download Cyberduck for free from the [official website](https://cyberduck.io/download/) or purchase it through the App Store.
2.  In your bucket settings, download the Hostman profile file.

![817ac175 Dffa 4305 8899 29090796e90c](https://content.hostman.com/assets/b53e287f-5fa1-4f6e-945a-27cff90dfb21.png?width=1518&height=734)

3.  Place the profile in the profiles directory:

```shell
~/Library/Group Containers/G69SCX94XU.duck/Library/Application Support/duck/Profiles
```

4.  Launch Cyberduck and select the **Hostman [S3](https://hostman.com/products/s3-storage/) Storage** profile.
5.  Enter the connection credentials.

-   -   AccountID: enter `your_hostman_login:swift`
    -   Password: enter the password from the **Cyberduck** tab.

![D86ae21e 1d8d 4072 9ac4 2cc8995c3979](https://content.hostman.com/assets/a43260b1-6b95-4ab5-ba42-b276f826eee3.png?width=1518&height=734)

6.  Click **Connect**.

Once connected, you will see a list of the created buckets.

#### Console Version

You can also use the console version of Cyberduck. You can install it using Homebrew.

1.  Run the following command to download the latest installer version:

```shell
brew install duck
```

2.  Download the Hostman profile file and add it to Cyberduck.

![817ac175 Dffa 4305 8899 29090796e90c](https://content.hostman.com/assets/b53e287f-5fa1-4f6e-945a-27cff90dfb21.png?width=1518&height=734)

## Installing Cyberduck on Linux

For Linux, you can use a console version of Cyberduck.

1.  Add the duck repository:

```shell
echo -e "deb https://s3.amazonaws.com/repo.deb.cyberduck.io stable main" | sudo tee /etc/apt/sources.list.d/cyberduck.list > /dev/null
```

2.  Download the public GPG key from `keyserver.ubuntu.com`:

```shell
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys FE7097963FEFBE72
```

3.  Update the repository:

```shell
sudo apt-get update
```

4.  Install the Cyberduck CLI:

```shell
sudo apt-get install duck
```

5.  Create a directory for profiles:

```shell
mkdir -p ~/.duck/profiles
```

6.  Download the Hostman profile:

```shell
wget -O ~/.duck/profiles/hostman.cyberduckprofile https://st.hostman.com/cloud-static/hostman/hostman.cyberduckprofile
```

## Commands for Managing Storage

The commands follow this format:

```shell
duck <generic_option> <argument> hostman:/<bucket_name> --username <login>:swift --password <password>
```

Where:

-   `<generic_option>` — an additional [option](https://docs.cyberduck.io/cli/#generic-options), such as `--verbose` or `--retry`.
-   `<argument>` — a `duck` utility argument. You can get the full list of arguments and options by running `duck --help`.
-   `<bucket_name>` — the name of the bucket.
-   `<login>` — your Hostman account login. In the `--username` parameter, you should always enter the login and `swift` separated by a colon, e.g., `xg60398:swift`.
-   `<password>` — the storage password which you can copy from the **Cyberduck** tab.

![D86ae21e 1d8d 4072 9ac4 2cc8995c3979](https://content.hostman.com/assets/a43260b1-6b95-4ab5-ba42-b276f826eee3.png?width=1518&height=734)

Example:

```shell
duck --list hostman:/7ebe7c09-90e3e6df-c3e1-4bd2-bb6f-166b49bb32f8 --username xg60398:swift --password gUAD0KCFhsGfbV2Arfhe9y5CAA4i8tLBqNyzAUW8
```

### Listing Files

To get a list of files in a bucket, use either the `--list` or `-l` argument:

```shell
duck --list hostman:/<bucket_name> --username <login>:swift --password <password>
```

### Downloading Files

To download a file to your local device, use the `-d` argument:

```shell
duck -d hostman:/<bucket_name> --username <login>:swift --password <password>
```

### Editing Files

Use the `--edit` argument to open a file for editing, make changes, and save the updated version back to the bucket:

```shell
duck --edit hostman:/<bucket_name> --username <login>:swift --password <password>
```

### Uploading a File to a Bucket

To upload a file to storage, use `--upload`:

```shell
duck --upload hostman:/<bucket_name> <local_file_name> --username <login>:swift --password <password>
```

### Copying Files

To copy a file from one bucket to another, use `--copy`, specifying first the current file location and then its new location in the target bucket:

```shell
duck --copy hostman:/<current_bucket_name>/<file_path> hostman:/<new_bucket_name>/<file_path> --username <login>:swift --password <password>
```

### Backing Up Files

To regularly back up files from a specific directory to storage, you can create a Cron job using the following script:

```bash
#!/bin/bash
USERNAME=<login>
PASSWORD=<password>
BACKUP_PATH=<bucket_name>/<directory_path>
LOCAL_PATH=<local_directory_path>
duck --upload "hostman:/${BACKUP_PATH}" "${LOCAL_PATH}" --existing rename --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y
```

The `--existing` argument specifies what to do with existing files. The example above uses the `rename` option, which renames an existing copy by adding the time and date. Other options include:

-   `overwrite` to replace the existing file with the new version.
-   `skip` to upload only new files added after the last upload, skipping even modified duplicates.
-   `compare` for differential backup, which replaces the old version with the new if they differ in size, modification date, or checksum.

Example:

```shell
duck --upload hostman:/<bucket_name>/<directory_path> <local_directory_path> --existing compare --username <login>:swift --password <password>
```

For information on all available options, use:

```shell
duck --help
```

### File Synchronization

The `--synchronize` option lets you sync the content of a local directory with one in storage. Any changes, additions, or deletions made locally will be mirrored in storage, and vice versa, resulting in both directories having an identical file set in the same version.

Example:

```shell
duck --synchronize hostman:/<bucket_name>/<directory_path> <local_directory_path> --username <login>:swift --password <password>
```

To automatically perform synchronization and keep the file copies in storage up to date, you can create a Cron job with the following script:

```bash
#!/bin/bash
USERNAME=<login>
PASSWORD=<password>
BACKUP_PATH=<bucket_name>/<directory_path>
LOCAL_PATH=<local_directory_path>
duck --synchronize "hostman:/${BACKUP_PATH}" "${LOCAL_PATH}" --username "${USERNAME}:swift" --password "${PASSWORD}" -q -y
```
