> For the complete documentation index, see [llms.txt](https://docs.ionos.com/cloud/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ionos.com/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/get-started/upload-objects.md).

# Upload Objects

When you upload a file to IONOS S3 Object Storage, it is stored as an Object and can be stored in buckets and folders in the Object Storage.

You can upload objects to buckets through one of the following methods:

* [<mark style="color:blue;">DCD</mark>](#dcd)
* [<mark style="color:blue;">API</mark>](#api)
* [<mark style="color:blue;">CLI</mark>](#cli)

## DCD

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

— Make sure a bucket already exists to which you want to upload objects (files).

— If you want to use object lock, then make sure the object lock is enabled for the bucket as well. For more information, see [<mark style="color:blue;">Object Lock</mark>](/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/settings/object-lock.md).
{% endhint %}

1\. In the **DCD**, go to **Menu** > **Storage** > **IONOS S3 Object Storage**.

2\. From the drop-down list in the **Buckets** tab, choose either **Show user-owned buckets** or **Show contract-owned buckets** depending on the bucket type you want to view.

3\. From the **Buckets** list, choose the bucket to which objects must be uploaded.

4\. Click **Upload objects** which opens an overlay screen.

5\. Click **Browse files** or drag and drop the files to be uploaded. You can choose to upload multiple files.

{% hint style="info" %}
**Info:** During object upload, you can turn on or off Server-Side Encryption with S3 Managed Keys (SSE-S3) for user-owned buckets. The object upload via DCD does not support encryption for contract-owned buckets.
{% endhint %}

5\. Review the selected files to be uploaded. Use the **Remove** and **Remove all** options to remove any files from being uploaded.

6\. Click **Start upload** to confirm the files to be uploaded.

![Upload objects](https://1737632334-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MifAzdGvKLDTtvJP8sm%2Fuploads%2Fgit-blob-de9043397ea934ca7cd0fb4ede4bb58ecebda267%2Fs3_object-upload.png?alt=media)

{% hint style="success" %}
**Result:** The objects are successfully uploaded to the selected bucket.
{% endhint %}

### Limitations

A few of the limitations to consider while using object upload through the DCD are:

* Multi-part upload is not supported.
* The Server-side Encryption with Customer Provided Keys (SSE-C) is not supported.
* A maximum of 4,65 GiB upload size for a single object applies.

Other applications or the [<mark style="color:blue;">SDKs and APIs</mark>](#api) are not subject to these limitations.

## API

Using the [<mark style="color:blue;">Object Storage API</mark>](https://api.ionos.com/docs/s3/v2/#tag/Basic-Operations), you can perform object upload and manage objects in a bucket.

{% hint style="info" %}
**Note:** Only a single storage class is currently available: `STANDARD`. It is designed for general-purpose storage of frequently accessed data.
{% endhint %}

## CLI

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

— Set up the AWS CLI by following the [<mark style="color:blue;">installation instructions</mark>](/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/s3-tools/awscli.md).

— Make sure to consider the supported [<mark style="color:blue;">S3 Endpoints</mark>](/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/s3-endpoints.md) for object upload.
{% endhint %}

**To upload an object from the current directory to a bucket:**

```
aws s3 cp filename.txt s3://my-bucket --endpoint-url https://s3-eu-central-2.ionoscloud.com
```

**To copy the contents of the local directory `my-dir` to the bucket `my-bucket`:**

```
aws s3 cp my-dir s3://my-bucket/ --recursive --endpoint-url https://s3-eu-central-2.ionoscloud.com
```

**To copy all objects from `my-source-bucket` to `my-dest-bucket`, excluding `.zip` files:**

```
aws s3 cp s3://my-source-bucket/ s3://my-dest-bucket/ --recursive --exclude "*.zip" --endpoint-url https://s3.eu-central-2.ionoscloud.com
```

{% hint style="info" %}
**Info:** This command does not support cross-region copying for IONOS S3 Object Storage.
{% endhint %}

**To sync the bucket `my-bucket` with the contents of the local directory `my-dir`:**

```
aws s3 sync my-dir s3://my-bucket --endpoint-url https://s3.eu-central-2.ionoscloud.com
```

### Multi-part upload

You can upload and copy objects using the multi-part upload feature that allows you to break down a single object into smaller parts and upload these object parts in parallel, maximizing the upload speed. While the [<mark style="color:blue;">DCD</mark>](/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/overview/working-with-object-storage.md#dcd) does not support multi-part upload due to the upload size limit of 4,65 GiB per object, the [<mark style="color:blue;">Object Storage API</mark>](https://api.ionos.com/docs/s3/v2/#tag/Uploads/operation/CreateMultipartUpload) and many [<mark style="color:blue;">S3 Tools</mark>](/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/s3-tools.md) offer this functionality, allowing users to take advantage of efficiency through parallel uploads.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.ionos.com/cloud/~/revisions/AMiYziCllTKB2y2lmONY/storage-and-backup/s3-object-storage/get-started/upload-objects.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
