> For the complete documentation index, see [llms.txt](https://doc.flow.swiss/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://doc.flow.swiss/products/object-storage/ressources/supported-amazon-s3-features.md).

# Supported Amazon S3 features

Besides basic Amazon S3 operations like GET, PUT, COPY, DELETE, the Flow Object Storage implementation of the Amazon S3 protocol supports the following features:

* Multipart upload
* Access control lists (ACLs)
* Versioning
* Signed URLs
* Object locking
* Geo-replication
* Server access logging
* Object storage classes
* Cross-region replication (CRR)
* Bucket policies
* Object expiration
* Cross-origin resource sharing (CORS)

## Supported authentication schemes

The following authentication schemes are supported by the Flow Object Storage implementation of the Amazon S3 protocol:

* [Signature Version 2](https://docs.aws.amazon.com/general/latest/gr/signature-version-2.html)
* [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html)

The following authentication methods are supported by the Flow Object Storage implementation of the Amazon S3 protocol:

* [Using the authorization header](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-auth-using-authorization-header.html)
  * [Transferring payload in a single chunk](https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-header-based-auth.html)
* [Using query parameters](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-query-string-auth.html)
* [Browser-based uploads using POST](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-UsingHTTPPOST.html)

The following authentication method is not supported:

* [Transferring payload in multiple chunks](https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-streaming.html)

## Supported Amazon request headers

The following Amazon S3 REST request headers are currently supported by the Flow Object Storage implementation of the Amazon S3 protocol:

* Authorization
* Content-Length
* Content-Type
* Content-MD5
* Date
* Host
* x-amz-content-sha256
* x-amz-date
* x-amz-security-token
* x-amz-object-lock-retain-until-date
* x-amz-object-lock-mode
* x-amz-object-lock-legal-hold
* x-amz-bypass-governance-retention
* x-amz-bucket-object-lock-enabled
* x-amz-geo-endpoint
* x-amz-geo-access-key
* x-amz-geo-access-secret

## Supported Amazon response headers

The following Amazon S3 REST response headers are currently supported by the Flow Object Storage implementation of the Amazon S3 protocol:

* Content-Length
* Content-Type
* Connection
* Date
* ETag
* x-amz-delete-marker
* x-amz-request-id
* x-amz-version-id
* x-amz-object-lock-retain-until-date
* x-amz-object-lock-mode
* x-amz-object-lock-legal-hold
* x-amz-geo-endpoint
* x-amz-geo-access-key
* x-amz-geo-access-secret

The following Amazon S3 REST response headers are not used:

* Server
* x-amz-id-2

## Supported Amazon error response headers

The following Amazon S3 REST error response headers are currently supported by the Flow Object Storage implementation of the Amazon S3 protocol:

* Code
* Error
* Message

The following Amazon S3 REST error response headers are not supported:

* RequestId (not used)
* Resource

## Supported Amazon S3 object expiration actions

The Flow Object Storage implementation of the Amazon S3 object lifecycle only supports object expiration by prefix. Deleting objects by tag is not available. The rule definition for object expiration is similar to that for bucket policies.

The following S3 object expiration actions are currently supported:

* Expiration. Deletes objects by age or by date. In case of versioning, inserts a delete marker, which becomes the latest version of an object. Delete markers are not removed.
* NonCurrentVersionExpiration. Deletes an object version after it has become non-current for the specified number of days.
* AbortIncompleteMultipartUpload. Aborts a multipart upload that has not completed during the specified number of days.
* ExpiredObjectDeleteMarker. Deletes a delete marker as soon as there are no other versions of an object.

##

<br>


---

# 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://doc.flow.swiss/products/object-storage/ressources/supported-amazon-s3-features.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.
