Перейти к основному содержимому

О бакетах

Представьте себе бакет как вашу личную папку в облачном хранилище — это специальное пространство, где вы можете хранить свои данные. Каждый бакет имеет уникальное имя, которое используется для доступа к вашим файлам через S3.

Как устроены бакеты?

В бакетах данные хранятся в виде объектов. Вы можете организовать свою информацию так, как вам удобно:

  • Создать несколько бакетов для разных типов данных;
  • Использовать папки внутри одного бакета;
  • Настроить бакет для размещения статичного сайта.

Создать бакет очень просто — вы можете сделать это через:

  • Консоль управления;
  • Командную строку (CLI);
  • Terraform;
  • API;
  • Популярные инструменты для работы с Amazon S3.

Выбираем имя для бакета

Имя бакета — это как адрес вашего хранилища. Например: https://storage.turbocloud.ru/мой-бакет

Несколько простых правил для имени:

  • Длина от 3 до 63 символов;
  • Можно использовать латинские буквы, цифры, дефисы и точки;
  • Начинаться и заканчиваться должно буквой или цифрой;
  • Не должно выглядеть как IP-адрес.

Совет: Если планируете использовать бакет для сайта, избегайте точек в имени — это поможет избежать возможных конфликтов.

Безопасное соединение HTTPS

Мы заботимся о безопасности ваших данных, поэтому поддерживаем HTTPS-соединение.

Настройте бакет под свои нужды

Вы можете:

  • Ограничить максимальный размер;
  • Выбрать класс хранилища по умолчанию;
  • Настроить хостинг сайта;
  • Включить шифрование;
  • Настроить правила жизненного цикла данных.

Доступ к вашим данным

Для работы внутри облака: Вы можете настроить доступ к бакетам напрямую из вашей облачной сети — быстро и безопасно, без выхода в интернет.

Для публичного доступа: Вы можете открыть доступ к данным для других пользователей, но помните — используйте эту возможность осторожно, только когда действительно необходимо.

Отслеживайте использование

Мы автоматически собираем статистику по вашим бакетам, которую вы можете просматривать:

  • В консоли управления;
  • Через сервисы мониторинга;
  • С помощью командной строки.

Что важно знать при работе с бакетами

  • Статистика обновляется с задержкой до 20 минут;
  • Переименовать бакет нельзя;
  • Вложенные бакеты не поддерживаются;
  • Удалить можно только пустой бакет;
  • После удаления имя бакета может быть недоступно некоторое время.

Совет: Если вы ограничили размер бакета, имейте в виду, что после освобождения места может потребоваться время для восстановления доступа на запись.

Бакеты — это удобный инструмент для организации ваших данных в облаке. Не бойтесь экспериментировать с настройками и находить оптимальный способ работы для ваших задач!

Версионирование бакета

Версионирование бакета — это ваша надежная защита от случайных ошибок и сбоев! Представьте, что у каждого файла в хранилище есть своя история изменений, которую можно просматривать и восстанавливать в любой момент.

Что такое версионирование?

Это возможность хранить полную историю изменений всех объектов в бакете. Каждая версия — это полноценная копия файла, которая сохраняется в S3.

Зачем это нужно?

  • Защита от случайного удаления или изменения файлов;
  • Страховка от сбоев в работе приложений;
  • Полная история изменений ваших данных.

Как работает версионирование?

Версионирование включается для всего бакета сразу и начинает работать для всех объектов внутри него.

До и после включения версионирования

До включения:

  • У всех объектов идентификатор версии null.

После включения:

  • Каждому новому объекту присваивается уникальный version_id;
  • Вы можете работать с конкретной версией объекта через этот идентификатор.

Что происходит при приостановке?

  • Существующие версии сохраняют свои version_id;
  • Новые объекты получают версию null;
  • Если версия null уже существует — она перезаписывается.

Работа с версиями

При перезаписи файла:

  • Создается новая версия с тем же именем;
  • Генерируется новый случайный version_id;
  • Предыдущая версия сохраняется в истории.

Для доступа к предыдущей версии:

  • Используйте идентификатор объекта;
  • Укажите нужный version_id.

Восстановление данных:

  • Предыдущие версии можно восстанавливать;
  • Процесс восстановления прост и интуитивно понятен.

Важные моменты

Обратите внимание: Операция включения версионирования необратима! Вы не можете полностью отключить версионирование, но можете приостановить создание новых версий.

При удалении:

  • Версия помечается специальным маркером удаления;
  • Удаленные версии не занимают место в хранилище.

Очистка истории

Со временем в бакете может накопиться много версий. Вы можете очистить их:

  • Вручную — точечное удаление ненужных версий;
  • Автоматически — настройте правила жизненного цикла объектов.

Преимущества версионирования

  • Надежность — ваши данные под защитой от случайных изменений;
  • Гибкость — работайте с любой версией файла в любой момент;
  • Простота — интуитивно понятный механизм работы;
  • Безопасность — восстановление данных в один клик.

Версионирование — это ваш надежный помощник в работе с облачным хранилищем. Настройте его один раз и работайте спокойно, зная что ваши данные в безопасности!

Логи бакета

Логи S3 сохраняются в JSON-формате. Одна запись в логах равна одному запросу к бакету.

Поля журнала запросов S3

Эти поля помогают понять, кто, когда и как взаимодействовал с объектами и бакетами в хранилище.

ПолеТипОписание
bucketStringИмя бакета, с которым выполнялась операция.
bytes_receivedInt64Размер запроса (входящих данных) в байтах.
bytes_sendInt64Размер ответа (исходящих данных) в байтах.
handlerStringМетод запроса в формате REST.<HTTP-метод>.<субъект>.
http_refererStringАдрес страницы, с которой был отправлен запрос.
ipStringIP-адрес клиента, выполнившего запрос.
methodStringHTTP-метод, использованный в запросе (например, GET, PUT, DELETE).
object_keyStringКлюч объекта в бакете, закодированный через URL.
protocolStringВерсия протокола передачи данных (например, HTTP/1.1).
rangeStringЗаголовок HTTP, задающий диапазон байт для частичной загрузки.
requesterStringИдентификатор пользователя, отправившего запрос.
request_argsStringАргументы, переданные в URL-запросе.
request_idStringУникальный идентификатор запроса.
request_pathStringПолный путь, по которому был выполнен запрос.
request_timeInt64Время обработки запроса в миллисекундах.
schemeStringТип протокола передачи данных: http или https.
ssl_protocolStringВерсия протокола безопасности (например, TLSv1.2).
statusInt64HTTP-код ответа (например, 200, 403, 404).
storage_classStringКласс хранилища, в котором хранится объект.
timestampStringВремя выполнения операции в формате ГГГГ-ММ-ДДTЧЧ:ММ:ССZ.
user_agentStringПриложение или браузер, выполнивший запрос.
version_idStringВерсия объекта (если включено версионирование).
vhostStringВиртуальный хост, на который был направлен запрос.

Методы запросов к бакету

Эти методы определяют, что именно делает клиент, обращаясь к бакету: получает список объектов, загружает данные, управляет настройками и так далее.

HTTP-методСубъектОписание
GETSERVICEПоказывает список всех доступных бакетов.
GETLOCATIONВозвращает регион, в котором размещен бакет.
PUTBUCKETСоздает новый бакет.
HEADBUCKETОтображает метаданные бакета.
GETBUCKETПоказывает список объектов (устаревшая версия).
GETBUCKET_V1EXTРасширенная устаревшая версия вывода списка объектов.
GETBUCKET_V2Актуальная версия получения списка объектов.
DELETEBUCKETУдаляет бакет.
OPTIONSBUCKETПроверяет возможность CORS-запросов.
GETBUCKETVERSIONSОтображает метаданные всех версий объектов.
GETVERSIONINGПоказывает состояние версионирования бакета.
PUTVERSIONINGВключает или приостанавливает версионирование.
PUTBUCKET_ACLЗагружает список управления доступом для бакета.
GETBUCKET_ACLОтображает список управления доступом для бакета.
PUTBUCKET_CORSНастраивает CORS для бакета.
GETBUCKET_CORSПоказывает текущие настройки CORS.
DELETEBUCKET_CORSУдаляет конфигурацию CORS.
PUTBUCKET_LIFECYCLEДобавляет или обновляет правила жизненного цикла объектов.
GETBUCKET_LIFECYCLEПоказывает активные правила жизненного цикла.
DELETEBUCKET_LIFECYCLEУдаляет правила жизненного цикла объектов.
PUTBUCKET_ENCRYPTIONВключает шифрование данных бакета.
GETBUCKET_ENCRYPTIONПоказывает информацию о шифровании.
DELETEBUCKET_ENCRYPTIONОтключает шифрование бакета.
PUTBUCKET_WEBSITESНастраивает хостинг статического сайта.
GETBUCKET_WEBSITESПоказывает настройки хостинга.
DELETEBUCKET_WEBSITESУдаляет конфигурацию хостинга.
GETBUCKET_LOGGINGОтображает настройки логирования.
PUTBUCKET_LOGGINGВключает или изменяет параметры логирования.
PUTBUCKETPOLICYПрименяет политику доступа к бакету.
GETBUCKETPOLICYПоказывает текущую политику доступа.
DELETEBUCKETPOLICYУдаляет политику доступа.
PUTBUCKET_TAGGINGДобавляет или изменяет метки бакета.
GETBUCKET_TAGGINGПоказывает текущие метки бакета.
DELETEBUCKET_TAGGINGУдаляет метки бакета.
PUTOBJECTЗагружает объект в бакет.
POSTOBJECTЗагружает объект через HTML-форму.
POSTOBJECT_RESTOREВосстанавливает объект из архива (не поддерживается).
PUTOBJECT_COPYКопирует объект внутри бакета.
DELETEOBJECTУдаляет объект.
DELETEMULTIPLE_OBJECTSУдаляет несколько объектов по списку ключей.
HEADOBJECTПоказывает метаданные объекта.
GETOBJECTПолучает объект из бакета.
OPTIONSOBJECTПроверяет возможность CORS-запроса к объекту.
GETOBJECT_ACLПоказывает ACL для объекта.
PUTOBJECT_ACLЗагружает ACL для объекта.
SELECTOBJECT_CONTENTВыполняет выборку данных с помощью S3 Select.
PUTOBJECT_TAGGINGДобавляет или изменяет метки объекта.
GETOBJECT_TAGGINGПоказывает метки объекта.
DELETEOBJECT_TAGGINGУдаляет метки объекта.
GETMULTIPARTПоказывает список текущих составных загрузок.
POSTINIT_MULTIPARTИнициализирует составную загрузку и возвращает ID.
POSTCOMPLETE_MULTIPARTЗавершает составную загрузку.
DELETEABORT_MULTIPARTПрерывает составную загрузку и удаляет ее части.
PUTUPLOAD_PARTСохраняет часть объекта.
PUTUPLOAD_PART_COPYКопирует часть объекта.
GETUPLOAD_PARTПоказывает список загруженных частей объекта.