---
title: 'Ограничения S3'
sidebar_label: 'Ограничения'
sidebar_position: 4
description: 'Какие ограничения на сущности и запросы API есть в S3'
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import {CustomTable} from '@selectel/docux/components'
import {TabItemLabel} from '@selectel/docux/components'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'

# Ограничения S3

Мы рекомендуем загружать объекты размером более 1 ГБ с помощью [сегментированной загрузки](/s3/objects/upload-object.mdx#segmented-upload) через [S3 API](/api/object-storage-s3/) или [Swift API](/api/object-storage-swift/).

[Лимиты хранилища](/s3/manage/limit.mdx) и [лимиты бакета](/s3/buckets/limits.mdx) вы устанавливаете самостоятельно.

## Ограничения сущностей S3 \{#s3-entity-limits}

<Tabs queryString="entity">
  <TabItem value="buckets" default>
    <TabItemLabel>
      Бакеты
    </TabItemLabel>

    <CustomTable>
      <table data-layout-fixed>
        <tbody>
          <tr>
            <th>Максимальное количество бакетов в проекте</th>
            <td>2 000`*`</td>
          </tr>

          <tr>
            <th>Максимальное количество бакетов с Virtual-Hosted адресацией в проекте</th>
            <td>100`**` (в рамках 2 000)</td>
          </tr>

          <tr>
            <th>Максимальный размер имени бакета</th>
            <td>128 символов UTF-8</td>
          </tr>

          <tr>
            <th>Максимальный размер политики доступа</th>
            <td>20 КБ</td>
          </tr>

          <tr>
            <th>Максимальное количество объектов в бакете</th>
            <td>Не ограничено</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>

    `*` В панели управления отображаются первые 1000 бакетов. Если бакетов больше, посмотреть полный список можно через API.

    `**` Можно увеличить по запросу.
  </TabItem>

  <TabItem value="objects">
    <TabItemLabel>
      Объекты
    </TabItemLabel>

    <CustomTable>
      <table data-layout-fixed>
        <tbody>
          <tr>
            <th>Максимальный размер объекта</th>
            <td>50 ТБ</td>
          </tr>

          <tr>
            <th>Максимальный размер имени объекта</th>
            <td>1024 символов UTF-8</td>
          </tr>

          <tr>
            <th>Минимальный размер данных для загрузки за один запрос</th>
            <td>0 байт</td>
          </tr>

          <tr>
            <th>Максимальный размер данных для загрузки за один запрос</th>
            <td>5 ГБ</td>
          </tr>

          <tr>
            <th>Минимальный размер сегмента при сегментированной загрузке</th>
            <td>1 байт</td>
          </tr>

          <tr>
            <th>Максимальное количество сегментов при сегментированной загрузке</th>
            <td>10 000</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="headers">
    <TabItemLabel>
      Заголовки
    </TabItemLabel>

    <CustomTable>
      <table data-layout-fixed>
        <tbody>
          <tr>
            <th>Максимальный размер всех заголовков/метаданных на аккаунт/бакет/объект в теле запроса</th>
            <td>8 КБ</td>
          </tr>

          <tr>
            <th>Максимальный размер всех заголовков/метаданных вида `X-Account-Meta-$Name`, `X-Container-Meta-$Name`, `X-Object-Meta-$Name`</th>
            <td>4 КБ</td>
          </tr>

          <tr>
            <th>Максимальное количество заголовков на аккаунт, бакет или объект</th>
            <td>90</td>
          </tr>

          <tr>
            <th>Максимальный размер имени заголовка</th>
            <td>64 символа UTF-8</td>
          </tr>

          <tr>
            <th>Максимальное количество символов в значении заголовка</th>
            <td>256 символов UTF-8</td>
          </tr>

          <tr>
            <th>Максимальный общий размер заголовка</th>
            <td>320 символов UTF-8 (64 символа + 256 символов)</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

## Ограничения запросов API \{#api-requests-limits}

Ограничения указаны для одного бакета.
Если ваш профиль нагрузки превышает эти ограничения, мы рекомендуем распределять нагрузку между несколькими бакетами из расчета не более 250 запросов в секунду (RPS) на каждый бакет.

Если превысить ограничение, сервер вернет ответ с кодом `429 Too Many Requests` и сообщением `Rate Limit exceeded`.

<Tabs queryString="api">
  <TabItem value="S3 API" default>
    <TabItemLabel>
      S3 API
    </TabItemLabel>

    <CustomTable>
      <table>
        <thead>
          <tr>
            <th>Тип запросов</th>
            <th>Лимит (запросов в секунду)</th>
            <th>Сообщение от сервера</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <th>Все запросы</th>
            <td>2 000</td>
            <td>Too many authorized requests</td>
          </tr>

          <tr>
            <th>GET + HEAD</th>
            <td>1 000</td>
            <td>Too many GET requests</td>
          </tr>

          <tr>
            <th>POST</th>
            <td>200</td>
            <td>Too many POST requests</td>
          </tr>

          <tr>
            <th>PUT</th>
            <td>300</td>
            <td>Too many PUT requests</td>
          </tr>

          <tr>
            <th>DELETE</th>
            <td>300</td>
            <td>Too many DELETE requests</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>

  <TabItem value="Swift API">
    <TabItemLabel>
      Swift API
    </TabItemLabel>

    <CustomTable>
      <table data-sticky>
        <thead>
          <tr>
            <th>Тип запросов</th>
            <th>Лимит (запросов в секунду)</th>
            <th>Сообщение от сервера</th>
          </tr>
        </thead>

        <tbody>
          <tr>
            <th>Все запросы</th>
            <td>2 000</td>
            <td>Too many authorized requests</td>
          </tr>

          <tr>
            <th>GET + HEAD</th>
            <td>1 000</td>
            <td>Too many GET requests</td>
          </tr>

          <tr>
            <th>POST</th>
            <td>300</td>
            <td>Too many POST requests</td>
          </tr>

          <tr>
            <th>PUT (без X-Copy-Form)</th>
            <td>300</td>
            <td>Too many PUT requests</td>
          </tr>

          <tr>
            <th>PUT (c X-Copy-Form)</th>
            <td>200</td>
            <td>Too many PUT requests</td>
          </tr>

          <tr>
            <th>COPY</th>
            <td>200</td>
            <td>Too many COPY requests</td>
          </tr>

          <tr>
            <th>DELETE</th>
            <td>300</td>
            <td>Too many DELETE requests</td>
          </tr>
        </tbody>
      </table>
    </CustomTable>
  </TabItem>
</Tabs>

<Formbricks />
