# Bucket API - S3 Compatible

4EVERLAND Bucket's S3-compatible API is fully compatible with the Amazon S3 Cloud Storage service, which means that it can be used by a wide range of standardized S3-compatible frameworks, tools, clients and SDKs to manage data stored via Bucket.

This compatibility makes it easy to integrate the 4EVERLAND Bucket with existing workflows and applications, without the need for significant changes to existing code or infrastructure. It also means that developers can use familiar tools and frameworks to manage their data on the 4EVERLAND Bucket, which can help to streamline development and reduce the learning curve associated with new technologies.

In addition to its S3 compatibility, the 4EVERLAND Bucket also offers high performance, reliability, and security, making it an excellent choice for developers and businesses looking for a powerful and flexible cloud storage solution.

Overall, the 4EVERLAND Bucket's S3-compatible API provides a powerful and flexible cloud storage solution that is easy to integrate with existing workflows and applications. With support for a wide range of tools and frameworks, it is a convenient and efficient way to manage your data in the cloud.

You can refer to the official [Amazon S3 documentation ](https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html)to implement the interface to the Bucket API.

{% embed url="<https://docs.aws.amazon.com/AmazonS3/latest/API/Welcome.html>" %}

If you need to upload content to Arweave, make sure that the corresponding bucket has the 'sync to ar' button enabled before using this API.

<figure><img src="/files/5Sc7OuS7yZJz51ieILZy" alt=""><figcaption></figcaption></figure>

## Methods for obtaining Hash

You can Get ipfs hash and arweave hash from object metadata.

Object metadata key:

```
{
  Metadata: {
    'arweave-hash': 'arweave hash',
    'ipfs-hash': 'ipfs cid'
  }
}
```

## Access Keys

To use the 4EVERLAND S3-compatible API, you will need to have your 4EVERLAND API Key and API Secret to submit API requests.

Click on Bucket and select 'Access Keys', then click on 'Generate' on the right side to generate an API Key.

<figure><img src="/files/lg6avzOmwEGwmenIr146" alt=""><figcaption></figcaption></figure>

## Endpoint

The Bucket S3-compatible API endpoint is:&#x20;

```
https://endpoint.4everland.co
```

This endpoint can be used with S3-compatible tools, SDKs, or frameworks to communicate with the 4EVERLAND Bucket.

{% hint style="info" %}
Location can be configured freely: Since 4EVERLAND storage nodes are globally distributed, endpoint will automatically match the nearest node according to the upload location for data upload, so you can configure the location parameter freely.
{% endhint %}

## HTTPS Protocol&#x20;

4EVERLAND maintains a strict HTTPS-only standard. This means objects and API calls are served only via HTTPS. The port for this connection is the HTTPS standard port 443.

Requests sent via the HTTP protocol will be redirected to HTTPS.

## **Supported Feature Calls**

Currently, the API supports Bucket Calls, Object Calls, and also supports Multipart Calls and Privacy Calls.

### Supported Bucket Calls

| Name                   | Supported                      |
| ---------------------- | ------------------------------ |
| MakeBucketWithLocation | Yes (partial, ingore Location) |
| GetBucketInfo          | Yes (fully)                    |
| ListBuckets            | Yes (fully)                    |
| DeleteBucket           | Yes (fully)                    |

### Supported Object Calls

| Name                | Supported   |
| ------------------- | ----------- |
| ListObjects         | Yes (fully) |
| ListObjectsV2       | Yes (fully) |
| GetObjectNInfo      | Yes (fully) |
| GetObject           | Yes (fully) |
| GetObjectInfo       | Yes (fully) |
| PutObject           | Yes (fully) |
| CopyObject          | Yes (fully) |
| DeleteObject        | Yes (fully) |
| DeleteObjects       | Yes (fully) |
| GetObjectTagging    | Yes (fully) |
| PutObjectTagging    | Yes (fully) |
| DeleteObjectTagging | Yes (fully) |

### Supported Multipart Calls

| Name                    | Supported   |
| ----------------------- | ----------- |
| ListMultipartUploads    | Yes (fully) |
| NewMultipartUpload      | Yes (fully) |
| PutObjectPart           | Yes (fully) |
| CopyObjectPart          | Yes (fully) |
| ListObjectParts         | Yes (fully) |
| AbortMultipartUpload    | Yes (fully) |
| CompleteMultipartUpload | Yes (fully) |

### Supported Policy Calls

| Name               | Supported |
| ------------------ | --------- |
| SetBucketPolicy    | No        |
| GetBucketPolicy    | Yes       |
| DeleteBucketPolicy | No        |

{% hint style="info" %}
More information about supported [AWS S3 STS](https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html).&#x20;

Please also check the [4EVER Security Token Service API](/storage/bucket/4ever-security-token-service-api.md) for details.
{% endhint %}

## Limits of S3 API

| Item                                                                            | Specification |
| ------------------------------------------------------------------------------- | ------------- |
| Maximum number of buckets                                                       | 200           |
| Maximum number of objects per bucket                                            | no-limit      |
| Maximum object size                                                             | about 96 GiB  |
| Minimum object size                                                             | 0 B           |
| Maximum object size per PUT operation                                           | 100 MiB       |
| Maximum number of parts per upload                                              | 1000          |
| Part size range                                                                 | 5 MiB to 100  |
| Maximum number of parts returned per list parts request                         | 1000          |
| Maximum number of objects returned per list objects request                     | 1000          |
| Maximum number of multipart uploads returned per list multipart uploads request | 1000          |
| Maximum length for bucket names                                                 | 48            |
| Maximum length for object names                                                 | 1024          |
| Maximum length for '/' separated object name segment                            | 19            |

{% hint style="info" %}
If you have any questions, please join our [Discord server](https://discord.com/invite/Cun2VpsdjF), or send us an email at <contact@4everland.org>.
{% endhint %}


---

# 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.4everland.org/storage/bucket/bucket-api-s3-compatible.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.
