# Launching ZS3 Server

ZS3 (Zus S3) is a **decentralized, S3-compatible object storage solution** built on the Züs Network. It allows users to store and manage data with **high security, redundancy, and efficiency** while leveraging blockchain technology for **decentralized governance and data integrity**.&#x20;

Unlike traditional cloud storage solutions, ZS3 ensures **data sovereignty, reliability, and cost-effectiveness** by distributing data across multiple storage providers.

This guide provides a step-by-step approach to **deploying a ZS3 server** using **Blimp UI**, a web-based interface for managing decentralized storage on the Züs Network.&#x20;

By following this guide, you will:

1. **Sign Up on Blimp** and set up your wallet.
2. **Create a Storage Allocation** to reserve decentralized storage space.
3. **Deploy a ZS3 Server Script** on your infrastructure.
4. **Extract the Endpoint** from the generated script for API access.
5. **Install and Configure the MinIO Client (`mc`)** for S3-compatible operations.
6. **Upload and Verify Files** using both **Blimp UI and MinIO Client (`mc`)**.
7. **Store Files in an Encrypted Folder** for additional security.

***

{% hint style="info" %}
**Prerequisites**

Before proceeding, ensure that you have:

* [ ] **Blimp UI account** (covered in the sign-up section).
* [ ] A **server with internet access** to deploy the ZS3 script.
* [ ] Basic familiarity with **command-line operations** (for using MinIO Client).
  {% endhint %}

### 1. **Sign Up on Blimp**

{% embed url="<https://drive.google.com/file/d/1JvId4ghTa0Ee4iJwVCoTqaOzyu_Neqc5/view?usp=sharing>" %}
Tutorial 1: Sign up
{% endembed %}

#### **Step 1: Log in to Blimp**

* Open the Blimp user interface and click on **Sign up**.&#x20;

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FP57TEFmhkGUzYZOc2F3p%2Fimage.png?alt=media&#x26;token=bbc382c4-cc8d-4d1a-82ab-fb959e9b5378" alt=""><figcaption><p>Fig1: Sign Up</p></figcaption></figure>

* Enter your username and email address. Then click on **Create Account**.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FNEBfq4LJrTz67MjkgWkZ%2Fimage.png?alt=media&#x26;token=bf018f4c-07c9-4bdd-8295-b5e312f6431f" alt=""><figcaption><p>Fig2: Create Account</p></figcaption></figure>

#### **Step 2: Verify Email Address**

* Check your email inbox for a one-time password (OTP). Enter the OTP in the Blimp UI to verify your email address.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FqkCYSGbJRKH7fpEt5iiw%2Fimage.png?alt=media&#x26;token=ab2b1030-8500-4d3b-af14-0b67b137d4d5" alt=""><figcaption><p>Fig3: Verify Email</p></figcaption></figure>

**Step 3: Verify Mobile Number**

* Provide your mobile number in the Blimp UI. Wait for an OTP to be sent to your phone. Enter the OTP to verify your mobile number.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FnVOVu2pGEFzmBQ6IISUv%2Fimage.png?alt=media&#x26;token=3752ec3d-e5bb-4e3d-983a-2cc4dc50996d" alt=""><figcaption><p>Fig4: Verify Mobile Number</p></figcaption></figure>

**Step 4: Wallet Mnemonics**

* After verifying your mobile number, you will be presented with your wallet mnemonics—a set of 24 unique words used to generate your wallet’s private key.
* Carefully write down these words and keep them in a secure location. They are crucial for future steps.
* Click on **I’ve written it down** to proceed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FiJ1j9uEUICIGAH3yyCqB%2Fimage.png?alt=media&#x26;token=30045d9a-e24e-432e-8e78-5a03490be8c2" alt=""><figcaption><p>Fig5: Backup Menmonic</p></figcaption></figure>

**Step 5: Mnemonics Verification and Wallet Setup**

* On the next page, verify your mnemonics by entering them in the correct sequence.
* Set a wallet name of your choice. Create a secure passphrase for your wallet.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2F8k6Dwj51VSb69P1e5h5V%2Fimage.png?alt=media&#x26;token=17ee23bd-0f0a-45c4-93f0-dd957f979601" alt=""><figcaption><p>Fig6: Verification</p></figcaption></figure>

**Step 6: Finalize Registration**

* Complete the steps and click **Continue**. Wait for the registration process to finalize.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FGkOjS8TbvLVnMubZpHjW%2Fimage.png?alt=media&#x26;token=b21b02c1-23a8-4105-b7e5-33faa1ec0bd9" alt=""><figcaption><p>Fig7: Finalize</p></figcaption></figure>

***

### **2. Create a Storage Allocation**

{% embed url="<https://drive.google.com/file/d/1yeQ_uJx2_YTv0b6JW742ASnvvyg-ffHC/view?usp=sharing>" %}
Tutorial 2: Storage Aloocation
{% endembed %}

**Step 1: Navigate to the S3 Tab**

* Open the Blimp UI and navigate to the **S3** tab. Click on the **Create New Allocation** button to start the process of setting up a new allocation.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FScwYOYr0qC3uNg80wehR%2Fimage.png?alt=media&#x26;token=97765f7e-1826-4235-ac25-5c1e01c373f9" alt=""><figcaption><p>Fig8: Create new S3 allocation</p></figcaption></figure>

**Step 2: Fill in Allocation Details**

* In the form that appears, enter the required details about your allocation.
* Once all fields are completed, click the **Confirm** button to proceed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FJb58cjcq0JKdApO0Awoo%2Fimage.png?alt=media&#x26;token=b55577bd-d3f6-4111-be34-4f976d16c8e0" alt=""><figcaption><p>Fig9: Add allocation details</p></figcaption></figure>

**Step 3: Select Storage Providers**

* By default, Blobbers are automatically chosen based on geodiversity. Optionally, manually select up to five sharded providers if needed.
* After finalizing your provider selection, click on the **Pay with USD** button.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FcJVVa8MLe1GPnrVqwLjd%2Fimage.png?alt=media&#x26;token=aa5c0e24-4582-41ad-afbb-67faf2389637" alt=""><figcaption><p>Fig10: Select storage providers</p></figcaption></figure>

**Step 4: Complete Payment**

* You can pay using ZCN from your existing balance. To do so, you'll need to connect your Metamask wallet. Additionally, you have the option to purchase more ZCN if needed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FK4nCiaNEMq16LkIien3Q%2Fimage.png?alt=media&#x26;token=d645589c-73dc-41e8-bb54-343d67d27469" alt=""><figcaption><p>Fig11: Review Payment</p></figcaption></figure>

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FMu2RydrudVc9iR2wTBTL%2Fimage.png?alt=media&#x26;token=cad56c08-3b37-4781-984c-71b2e38fb00d" alt=""><figcaption><p>Fig12: Get ZCN and confirm payment</p></figcaption></figure>

Upon successful payment, the allocation with be created.

***

### **3. Deploying a New Script Using Blimp**

{% embed url="<https://drive.google.com/file/d/1B_LsT9Ri1frCYSqwy73uO1POQ-wE4GoU/view?usp=sharing>" %}
Tutorial 3: Deploy New Script Using Blimp
{% endembed %}

**Step 1: Generate the Script**

* Enter your IP address in the provided field within the Blimp UI. Click on the **Generate Script** button.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2Ff5SpwqV5JtoEPGjosjpv%2Fimage.png?alt=media&#x26;token=1df52a52-9204-49c0-aa25-042e16c26f51" alt=""><figcaption><p>Fig13: Generate Script</p></figcaption></figure>

* The generated script, along with detailed instructions, will be displayed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FLpTSQCQmzaDC7js91Yf1%2Fimage.png?alt=media&#x26;token=4abd5c8d-2f1c-4f46-a052-e37786289dd1" alt=""><figcaption><p>Fig14: Copy script</p></figcaption></figure>

**Step 2: Execute the Script**

* Run the script on your machine as instructed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FBnZ8QGgPwQo2aLxaS1Ug%2Fimage.png?alt=media&#x26;token=373e0edf-8c16-430e-92a6-f3b384c27f2f" alt=""><figcaption><p>Fig15: Execute Script</p></figcaption></figure>

Once the script runs successfully, Blimp will automatically detect your server and guide you to the next step.

**Step 3: Conduct S3 Operations**

* **Create a Bucket**: Select **Create Bucket** from the **Type of Request** menu.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2Fx4sDuBZPo50bWqELo51c%2Fimage.png?alt=media&#x26;token=ae98f530-b28f-4a32-a8c8-b73312b2329f" alt=""><figcaption><p>Fig16: Conduct S3 Operations</p></figcaption></figure>

* Enter your desired bucket name. Click on **Run cURL Request**.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2F7trw7nxBV3CsGxOCB371%2Fimage.png?alt=media&#x26;token=4f203321-4e0b-442e-bfb8-247f4eeda485" alt=""><figcaption><p>Fig17: Run cURL request</p></figcaption></figure>

* The response will be displayed in the right-hand panel.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FmaIr3Ev1m4iIoIJ56X6n%2Fimage.png?alt=media&#x26;token=d6e046f3-5d4e-4e91-a1ec-818b8cac1eab" alt=""><figcaption><p>Fig18: Check response</p></figcaption></figure>

* **List Existing Buckets**: Choose **Buckets** from the **List Operations** section under the **Type of Request** menu. Click on **Run cURL Request** to view the list of buckets.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FcvntFhwCwhgMVzCc7K8f%2Fimage.png?alt=media&#x26;token=5c9f6338-571d-4238-a808-48f98e9ed3b1" alt=""><figcaption><p>Fig19: Choose buckets</p></figcaption></figure>

By completing this step, you have successfully deployed the ZS3 server, created the S3-compatible allocation, and performed basic S3 operations.

***

### 4. Extract the Endpoint from the Blimp-Generated Script

{% embed url="<https://drive.google.com/file/d/13EvJ8ORHBPLhEabkw5VszO7qEa68ZtUN/view?usp=sharing>" %}
Tutorial 4: Extract Endpoint from Blimp-generated Script
{% endembed %}

When you generate and execute the deployment script using Blimp, it provides an endpoint URL for accessing your deployed ZS3 server. This endpoint is dynamically configured within the `curl` command.

#### **Step 1: Run the Generated Script**

After generating the script in Blimp, execute it on your machine. The script includes various parameters such as authentication credentials, location IDs, and domain configurations.

In the provided example, the executed command is:

```bash
curl -fsSL https://raw.githubusercontent.com/0chain/zcnwebappscripts/main/blimp.sh | 
sed 's/0chainminiousername/test1/; 
s/0chainminiopassword/rootroot/; 
s/0chainallocationid/6248d6ea85b692c03fd0905935be7a33ed6db791199796f60dd269af145d1a5/; 
s/0chainblockworker/https:\/\/mob.zus.network\/dns\/;
s/blimpdomain/blimp7fyct.zus.network/;
s/0chainwalletid/9febacd3205b6d4f295f40acd3eb0614686a4ba760da7e2227f328585252a/; 
s/0chainwalletpublickey/0e54674f854d067fadeac2c0b7656b32b183062af40c475ac3fa7bf630aaa787f061164a997684/; 
s/0chainwalletprivatekey/d0e04217b6d0195efb82267d4fa98c1d967dd646090409a27e985af3015be117/; 
s/0chainmnemonics/drama funny phone want walnut crazy fancy crop purchase maple crucial chronic client useful blur grace bus daughter promote income mask denial step wisdom/' | bash
```

#### **Step 2: Identify the Endpoint**

Once the script runs successfully, it outputs key configuration details, including the **ZS3 server endpoint**.

In this case, the endpoint is explicitly displayed as:

```bash
zs3server url ---> blimp7fyct.zus.network
```

This indicates that `blimp7fyct.zus.network` is the assigned domain for your deployed ZS3 instance.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FFgZONwxZ8w9KY9ej91aL%2Fimage.png?alt=media&#x26;token=94ef3c55-5ab9-4d8e-8267-83853830a46b" alt=""><figcaption><p>Fig20: Identify endpoint</p></figcaption></figure>

#### **Step 3: Locate the Endpoint in the Script**

The domain name for the server (`blimp7fyct.zus.network`) is dynamically set within the `curl` command using:

```bash
/blimpdomain/blimp7fyct.zus.network/
```

***

### **5. Install and Configure MinIO Client (`mc`)**

{% embed url="<https://drive.google.com/file/d/1HSi1z0Uei24dl9JgeFyOcmFjNL9vGFS-/view?usp=sharing>" %}
Tutorial 5: Install and Config mc on the Server
{% endembed %}

The following steps guide you through installing and setting up the MinIO client (`mc`) to interact with your deployed ZS3 server.

#### **Step 1: Download the MinIO Client (`mc`)**

Run the following command to download the `mc` binary for Linux:

```bash
wget https://dl.min.io/client/mc/release/linux-amd64/mc
```

#### **Step 2: Make the MinIO Client Executable**

After downloading, set the execute permission on the binary:

```bash
chmod +x mc
```

#### **Step 3: Move Into the `mc` Directory (If Needed)**

If you previously downloaded `mc` inside an existing directory, navigate into it:

```bash
cd mc/
```

#### **Step 4: Configure MinIO Client (`mc`) with the ZS3 Server**

Now, set up the MinIO client with the ZS3 server by using the generated endpoint from the Blimp script:

```bash
./mc alias set zcn https://blimp7fyct.zus.network test1 rootroot --api S3v2
```

* **`zcn`** → The alias name for the ZS3 server.
* **`https://blimp7fyct.zus.network`** → The endpoint extracted from the Blimp deployment.
* **`test1`** → The username.
* **`rootroot`** → The password.
* **`--api S3v2`** → Specifies S3 API compatibility.

Upon success, you will see:

```bash
Added 'zcn' successfully.
```

#### **Step 5: Verify Configuration and List Buckets**

To confirm that the connection is established, list all existing S3 buckets:

```bash
./mc ls zcn/
```

This will display a list of buckets on your ZS3 server, similar to:

```bash
[2024-10-19 22:40:49 CEST]  0B root/
[2024-10-19 22:40:49 CEST]  0B Encrypted/
[2024-10-19 22:44:59 CEST]  0B test-s3/
```

***

### **6. Verifying File Upload in Blimp UI**

Once you have set up the MinIO client (`mc`) and created an S3-compatible allocation, follow these steps to copy a file to your ZS3 storage and verify it using both the command line and Blimp UI.

#### **Step 1: Navigate to S3 Operations in Blimp UI**

* Open **Blimp UI** and go to the **S3** tab. Select your allocation.
* Click on the three dots (**...**) next to your allocation to open the options menu and click on **Conduct Operations**.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FlIPCrZf2Lm6BhZtAqboW%2Fimage.png?alt=media&#x26;token=82bfb834-7445-436a-ac1c-cfebc97a8b2f" alt=""><figcaption><p>Fig21: Conduct operations</p></figcaption></figure>

#### **Step 2: List Buckets in Blimp UI**

* In the **Conduct Operations** section, navigate to **List Operations**. Click on **Buckets**.
* Click on **Run Curl Request**. The response body on the right panel will display a list of existing buckets.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FQ07QeaMPdISPz9C9YU5m%2Fimage.png?alt=media&#x26;token=7412ca3c-2398-45ad-ae67-731d0f2074f7" alt=""><figcaption><p>Fig22: List Buckets in Blimp UI</p></figcaption></figure>

#### **Step 3: Verify Bucket in MinIO Client (`mc`)**

* Open your terminal and run the following command. This will list all the files currently in the **test-s3** bucket.

  ```bash
  ./mc ls zcn/test-s3
  ```

#### **Step 4: Check Files in Your Local Directory**

* Run the following command to verify the presence of the file you want to upload:

  ```bash
  ls -lha
  ```

#### **Step 5: Copy File to S3 Bucket Using `mc`**

* Copy `functional-tests.sh` to the `test-s3` bucket using the following command:

  ```bash
  ./mc cp functional-tests.sh zcn/test-s3
  ```

The terminal will show a progress bar indicating the file transfer.

#### **Step 6: Verify the File in MinIO Client**

* Run the following command to check if the file exists in the bucket:

  ```bash
  ./mc ls zcn/test-s3
  ```
* This should list `functional-tests.sh`, confirming it has been uploaded.
* To further verify, check the detailed list of files in your current directory:

  <pre class="language-bash"><code class="lang-bash"><strong>ls -lha
  </strong></code></pre>

#### Step **7: Verify in Blimp UI**

* Go to the **Blimp UI** and navigate to the **S3** section. Select your allocation and click on the three dots to open the options menu. Click on **Conduct Operations**.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FFV7hoAuhcKq6gxQ4sTqN%2Fimage.png?alt=media&#x26;token=3de91fd4-f16f-40de-b6df-37e410cb71de" alt=""><figcaption><p>Fig23: Conduct Operations </p></figcaption></figure>

#### **Step 8: List Bucket Objects in Blimp UI**

* Under **List Operations**, click on **Bucket Objects**. Click on **Run Curl Request**.
* The response body displayed on the right panel should include:

  ```json
  {
    "BucketName": "test-s3",
    "BucketObjects": [
      {
        "Name": "functional-tests.sh",
        "LastModified": "2024-10-20T00:01:26Z"
      }
    ]
  }
  ```

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FwrA5yBDXV6bpdgV0D4z1%2Fimage.png?alt=media&#x26;token=80ec8772-c8a7-42f9-8c2e-6805409d5100" alt=""><figcaption><p>Fig24: Check file in response body</p></figcaption></figure>

* This confirms the `functional-tests.sh` file is now stored in the bucket.

#### **Step 9: View Uploaded File in Blimp Dashboard**

* Open the **Blimp UI Dashboard**. Navigate to the **test-s3** bucket.
* You should see the `functional-tests.sh` file listed in the bucket contents.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FHZZstfkTakYpiU8Mudt6%2Fimage.png?alt=media&#x26;token=78a724f2-04d7-4a54-ba70-17774f95ffee" alt=""><figcaption><p>Fig25: Verify on Blimp UI</p></figcaption></figure>

***

### **7. Uploading a File via Blimp UI and Verifying with MinIO Client (`mc`)**

{% embed url="<https://drive.google.com/file/d/1lVrvWIVRG_NGdacEsBNsIPpcK2HRYfkz/view?usp=sharing>" %}
Tutorial 7: Upload using Blimp and Verify with mc
{% endembed %}

This section covers how to upload a file using the **Blimp UI** and verify its presence using the **MinIO client (`mc`)**.

#### **Step 1: Upload a File via Blimp UI**

* **Go to Blimp UI** and navigate to the **S3** tab. Open the **test-s3** bucket (or any other folder where you want to upload the file).
* Click on **Upload File(s)**. Select the file you want to upload.
* Optionally, rename the file if needed. Click on **Upload** to store the file in the selected folder.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FwMgWIo5vaNKFdBnsT5iz%2Fimage.png?alt=media&#x26;token=688a71d7-c2a5-4a6c-9a7d-fd020a9b385c" alt=""><figcaption><p>Fig26: Upload File</p></figcaption></figure>

#### **Step 2: Verify Upload Using MinIO Client (`mc`)**

1. Open your **terminal**. Run the following command to list the files in the `test-s3` bucket:

```bash
./mc ls zcn/test-s3
```

The uploaded file should now appear in the list, confirming a successful upload.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FtzFT1UE2ey2jBmCKKU9R%2Fimage.png?alt=media&#x26;token=132583b4-774f-49ac-a613-5fe3bfd648f6" alt=""><figcaption><p>Fig27: Verify Upload</p></figcaption></figure>

The file uploaded via **Blimp UI** should be visible when running the `mc ls` command. The output should display the file name, size, and timestamp.

***

### **8. Copying a File to the Encrypted Folder Using MinIO Client (`mc`)**

{% embed url="<https://drive.google.com/file/d/1iIqZPdFem-ATLHwHVptITYnQWqj84eyd/view?usp=sharing>" %}
Tutorial 8: Copy file to Encrypted Folder
{% endembed %}

This section guides you through copying a file to the **Encrypted** folder using the MinIO client (`mc`) and verifying the upload through the Blimp UI.

#### **Step 1: List Available Buckets**

* Open your **terminal** and list the existing buckets in your ZS3 storage. You should see an **Encrypted** folder in the list.

  ```bash
  ./mc ls zcn/
  ```

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FjapJpKesCNCyoJJvMUvw%2Fimage.png?alt=media&#x26;token=4628b914-aa4b-4901-9496-2a1c7d1638f1" alt=""><figcaption><p>Fig28: List Buckets</p></figcaption></figure>

#### **Step 2: Copy a File to the Encrypted Folder**

* Use the MinIO client to copy `functional-tests.sh` to the **Encrypted** folder. This command moves `functional-tests.sh` into the **Encrypted** folder, securing it.

  ```bash
  /mc cp functional-tests.sh zcn/Encrypted
  ```

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FG5SEPNjZyTSUfz5L1bAc%2Fimage.png?alt=media&#x26;token=5f9927ca-96bd-4bf3-ad79-9618190b3d23" alt=""><figcaption><p>Fig29: Copy file</p></figcaption></figure>

#### **Step 3: Verify in Blimp UI**

* Open **Blimp UI** and navigate to the **Home** page. Click on the **Encrypted** folder to check if `functional-tests.sh` appears.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FZeOsnIbyXwWBUKVnftzE%2Fimage.png?alt=media&#x26;token=b2fe5b25-2c99-4b0d-bf25-fc0b4519ed30" alt=""><figcaption><p>Fig30: Verify in Blimp UI</p></figcaption></figure>

#### **Step 4: Copy Another File to the Encrypted Folder**

* Now, copy another file (`helm_0chain_net.tar.gz`) into the **Encrypted** folder. The file will be securely moved into the **Encrypted** folder.

  ```bash
  /mc cp ../helm_0chain_net.tar.gz zcn/Encrypted
  ```

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FK9yrx0BDTajZR3kaW1XU%2Fimage.png?alt=media&#x26;token=7b27f1e7-f1eb-46f9-b8c1-db6336124817" alt=""><figcaption><p>Fig31: Copy to Encrypted Folder</p></figcaption></figure>

#### **Step 5: Confirm the File in Blimp UI**

* Go back to the **Blimp UI**. Navigate to the **Encrypted** folder.
* You should now see both `functional-tests.sh` and `helm_0chain_net.tar.gz` listed.

<figure><img src="https://2414485336-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUGN3Vu2Hi1voQQLrIVGO%2Fuploads%2FPDQKbPNuetRvg6dw6J2j%2Fimage.png?alt=media&#x26;token=0282c2ac-6e49-48cb-b720-db0cf2ac88a1" alt=""><figcaption><p>Fig32: Confirm on Blimp UI</p></figcaption></figure>

This confirms that file operations between MinIO (`mc`) and Blimp UI are properly synchronized.
