# S3 supported APIs and limitations

## Supported S3 APIs

The following standard S3 APIs are supported:

* Bucket (HEAD/GET/PUT/DEL)\
  Including ListObjects and ListObjectsV2
* Bucket Lifecycle (GET/PUT/DEL)
* Bucket Policy (GET/PUT/DEL)
* Bucket Tagging (GET/PUT/DEL)
* Object (GET/PUT/DEL)
* Object Tagging (GET/PUT/DEL)
* Object Multipart (POST Create/Complete, GET/DEL/PUT, GET Parts)

{% hint style="info" %}
For a multipart object upload, the bucket’s free capacity must be at least twice the size of the object until the upload is complete.
{% endhint %}

## General limits

<table data-header-hidden><thead><tr><th width="406">Item</th><th>Limits</th></tr></thead><tbody><tr><td><strong>Item</strong></td><td><strong>Limits</strong></td></tr><tr><td>Maximum number of buckets</td><td>10000</td></tr><tr><td>Maximum object size</td><td>5 TiB</td></tr><tr><td>Maximum number of parts per upload</td><td>10000</td></tr><tr><td>Part numbers</td><td>1 to 10000 (inclusive)</td></tr><tr><td>Part size</td><td>5 MiB to 5 GiB. <br>The last part can be &#x3C; 5 MiB</td></tr><tr><td>Maximum number of parts returned for a list parts request</td><td>1000</td></tr><tr><td>Maximum number of multipart uploads returned in a list multipart uploads request</td><td>1000</td></tr><tr><td>User-defined metadata per object</td><td>2 KB</td></tr><tr><td>Maximum length of an S3 IAM user policy</td><td>2048</td></tr><tr><td>Maximum number of S3 IAM user policies</td><td>1024</td></tr><tr><td>Maximum number of S3 regular users</td><td>1024</td></tr><tr><td>Maximum number of S3 service accounts</td><td>5000</td></tr><tr><td>Maximum number of S3 STS credentials</td><td>5000</td></tr></tbody></table>

## Naming considerations

### Buckets

* Bucket names must be between 3 and 63 characters long.
* Bucket names can consist only of lowercase letters, numbers, dots (.), and hyphens (-).
* Bucket names must begin and end with a letter or number.
* Bucket names must not be formatted as IP addresses (for example, 192.168.5.4).
* Bucket names must be unique across the cluster.

### Objects

* Object key names must be up to 1024 characters long.
* The prefix `/` of an object is interpreted as a directory, and such directory segments are limited to 255 characters.
* See [AWS S3 object name limitations](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html). Match them to limitations in other protocols.

{% hint style="info" %}
**Note:** It is recommended to avoid special characters that might be unsupported using protocols other than S3.&#x20;
{% endhint %}

## Supported S3 policy actions

The S3 protocol implementation supports the following policy actions:

* `s3:*`\
  **Note**: this wildcard is supported for IAM policies but not for bucket policies
* `s3:AbortMultipartUpload`
* `s3:CreateBucket`
* `s3:DeleteBucket`
* `s3:DeleteBucketPolicy`
* `s3:DeleteObject`
* `s3:GetBucketLocation`
* `s3:GetLifecycleConfiguration`
* `s3:PutLifecycleConfiguration`
* `s3:ListBucketMultipartUploads`
* `s3:ListMultipartUploadParts`
* `s3:GetBucketPolicy`
* `s3:GetObject`
* `s3:ListAllMyBuckets`
* `s3:ListBucket`
* `s3:PutBucketPolicy`
* `s3:PutObject`
* `s3:GetBucketTagging`
* `s3:PutBucketTagging`

## Lifecycle configuration

WEKA supports the [AWS S3 Lifecycle Configuration](https://docs.aws.amazon.com/AmazonS3/latest/userguide/intro-lifecycle-rules.html) elements and definitions, with the limitation of only supporting the lifecycle `Expiration` action.


---

# Agent Instructions: 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:

```
GET https://docs.weka.io/4.1/additional-protocols/s3/s3-limitations.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
