Как работает S3 API в PC-Storage: технические основы

Далее разберем технические основы протокола S3, ключевые методы и параметры конфигурации, а также практические примеры реализации запросов.

S3 API в PC-Storage от PlatformCraft: как работает и как использовать

S3 API в объектном хранилище PC-Storage от PlatformCraft реализован как совместимый протокол обмена объектными данными, повторяющий логику AWS S3, а также позволяющий подключать хранилище через стандартные SDK, CLI и интеграционные инструменты без адаптации кода.

Техническая модель API построена таким образом, чтобы разработчики могли обращаться к объектам, управлять бакетами, формировать подписи запросов и работать с метаданными так же, как в любом S3-совместимом сервисе. В отличие от классических файловых систем, S3 API оперирует объектами и HTTP-запросами, а не директориями и файловыми путями.

Далее разберем технические основы протокола S3, ключевые методы и параметры конфигурации, а также практические примеры реализации запросов. Материал предназначен для разработчиков, которым важно понимать особенности API на уровне структуры запросов, моделей данных и работы SDK.

Объектное хранение данных

Основы протокола S3

S3-протокол (Simple Storage Service) – это набор HTTP-методов и правил адресации, используемых для работы с объектами в хранилище. В отличие от классических файловых систем, здесь нет каталогов и файлов в привычном понимании, но есть бакеты и объекты, а вся система строится в горизонтальном масштабировании.

  • Бакет (Bucket) – логический контейнер для данных.
  • Объект (Object) – файл + метаданные.
  • Ключ (Key) – уникальный идентификатор объекта внутри бакета.

Структура вроде «videos/2024/lesson.mp4» – это строка ключа, а не каталог.

Все операции выполняются через HTTP-запросы к единому endpoint:

  • https://eu-s3.platformcraft.com

Аутентификация и авторизация построены стандартным для S3 образом: при помощи ключей S3 Access Key и S3 Secret Key, что позволяет использовать стандартные инструменты без доработок.

PC-Storage повторяет ключевые элементы API, а именно структуру запросов, схему подписи, логику бакетов и операции над объектами, позволяя использовать привычный инструментарий без изменения кода.

Методы и запросы S3 API

Объектное хранилище PC-Storage поддерживает весь базовый набор S3-операций, необходимых для работы с объектным хранилищем:

  • CreateBucket – создание бакета;
  • ListBuckets – список доступных бакетов;
  • DeleteBucket – удаление бакета;
  • PutObject – загрузка объекта;
  • GetObject – получение объекта;
  • DeleteObject – удаление объекта;
  • HeadObject – получение метаданных без скачивания.

Дополнительно поддерживается загрузка больших файлов частями, управление версиями объектов, работу с метаданными и тегами, а также назначение и контроль прав доступа (IAM). Все запросы формируются так же, как в AWS S3, включая заголовки, параметры и подпись запроса.

S3-протокол основан на REST-архитектуре: каждый объект доступен по URL, а операции над ним выполняются через HTTP-запросы. В PC-Storage реализованы самые востребованные методы.

Метод
Назначение
Пример использования
PUTзагрузка объектаотправка файла через SDK или CLI
GETполучение объектазагрузка данных клиентом
DELETEудаление объектаочистка бакета, удаление старых версий
HEADполучение метаданныхпроверка типа, размера, модификаций
LISTпросмотр объектовнавигация и выборка по префиксам
Multipart Upload (мультипарт загрузка)загрузка больших файлов по частямпередача больших архивов, резервных копий

Примеры сценариев использования

Объектное хранилище S3 часто используется для хранения:

  • пользовательских загрузок;
  • архивов и резервных копий;
  • документов и медиафайлов.

Благодаря S3 API такие сценарии легко интегрируются с веб-приложениями и backend-сервисами.

Хранилище подходит для хранения медиаконтента:

  • видеоархивов;
  • исходников для транскодирования;
  • раздачи контента через CDN или приложения.

PC-Storage часто используется вместе с PC-Media, где S3 выступает в роли основного слоя хранения.

S3-клиент идеально подходит для хранения бэкапов, поэтому PC-Storage используют для:

  • резервного копирования серверов;
  • хранения снапшотов;
  • сценариев восстановления в случае удаления, вредоносного ПО или ошибок.

Особенности конфигурации PC-Storage

Есть несколько важных моментов, которые отличают PC-Storage от публичных облаков. Наше хранилище совместимо с популярными инструментами:

  • AWS CLI;
  • SDK для Python (boto3);
  • SDK для Java, Go, PHP, Node.js;
  • Rclone;
  • Terraform (через S3 backend);
  • Backup-системы с поддержкой S3.

Это позволяет использовать хранилище в существующих пайплайнах без адаптации.

Единый endpoint

Регион мы не учитываем,

Используется один endpoint, регион при этом не учитывается. А вот к бакетам можно обращаться как к поддомену (например, vedro.eu-s3.platformcraft.com). Это упрощает сетевые настройки и снижает вероятность ошибок при интеграции.

Отсутствие скрытых ограничений

В своих сервисах PlatformCraft использует прозрачность и гибкость:

  • нет платы за операции PUT/GET;
  • нет тарификации исходящего трафика;
  • нет искусственных лимитов на количество объектов.

Полная локализация данных

Все данные физически хранятся на территории РФ в нескольких географически независимых дата-центрах, что критично для компаний с требованиями и корпоративной безопасности.

Производительность под нагрузкой

Архитектура PC-Storage оптимизирована для работы с большими объемами данных и интенсивным параллельным доступом, особенно в сценариях с видео и медиафайлами.

Почему этого достаточно?

PC-Storage реализует все базовые механизмы объектного хранилища, сохраняя предсказуемость, стабильность и совместимость с AWS-инструментами:

  • AWS CLI,
  • s3cmd,
  • rclone,
  • SDK (Python, Java, Go, PHP и др.)

Параметры конфигурации

Настройка клиента сводится к трем важным параметрам: endpoint, Access Key ID и Secret Key. Формат авторизации и структура подписей полностью соответствует AWS Signature v4, поэтому SDK работают без модификаций.

Базовые параметры подключения

Endpoint (единый):

https://eu-s3.platformcraft.com

Пример конфигурации:

aws configure
AWS Access Key ID [None]: ACCESS_KEYAWS Secret Access Key [None]: SECRET_KEYDefault region name [eu-central-2]: eu-central-2Default output format [None]: json

или напрямую в файле конфигурации:

[default]aws_access_key_id=ACCESS_KEYaws_secret_access_key=SECRET_KEYregion=eu-central-2endpoint_url=https://eu-s3.platformcraft.com

Пример вызова с endpoint:

aws s3 ls —endpoint-url https://eu-s3.platformcraft.com

 

Поддерживаемые параметры клиента

PC-Storage корректно работает с:

  • —recursive
  • —multipart-chunk-size
  • —expected-size
  • —no-verify-ssl (для отладки)
  • —profile

Особенности конфигурации PC-Storage

  • Нет регионов (единый endpoint упрощает конфигурацию).
  • Совместимость 1:1 с базовыми SDK (Python boto3, AWS Java SDK, Go S3 и т. д.).
  • Минимальный набор параметров (меньше риск ошибки).
  • Строгая репликация (выполняется автоматически, без участия клиента).

Примеры реализации в коде

S3-совместимость PC-Storage позволяет подключать хранилище через стандартные SDK без изменения кода. Ниже приведены практические примеры на Python и Java, демонстрирующие базовые операции: создание клиента, загрузку объекта, скачивание и вывод списка файлов.

Пример на Python

Для работы с S3-API PC-Storage в Python достаточно указать endpoint и ключи при создании клиента boto3. Библиотека boto3 поддерживает кастомные endpoints, поэтому PC-Storage подключается так же, как S3-совместимые сервисы.

Пример показывает три базовые операции: загрузку файла (upload_file), скачивание (download_file) и получение списка объектов (list_objects_v2).

Пример Python-кода для PC-Storage

import boto3

# Инициализация клиента S3 с указанием endpoint PC-Storage
s3 = boto3.client(
«s3″,
endpoint_url=»https://eu-s3.platformcraft.com»,
aws_access_key_id=»YOUR_ACCESS_KEY»,
aws_secret_access_key=»YOUR_SECRET_KEY»,
region_name=»ru-central»
)
bucket = «demo-bucket»
# Загрузка файла
s3.upload_file(«local-file.txt», bucket, «local-file.txt»)
print(«Файл успешно загружен.»)
# Получение списка объектов
response = s3.list_objects_v2(Bucket=bucket)
for obj in response.get(«Contents», []):
print(«Объект:», obj[«Key»])
# Скачивание файла
s3.download_file(bucket, «local-file.txt», «downloaded-file.txt»)
print(«Файл скачан.»)

  • endpoint_url – главный параметр интеграции с PC-Storage.
  • Используются стандартные методы upload_file, list_objects_v2, download_file.
  • Подписи запросов формируются автоматически.

Пример на Java

Java-приложения используют S3-API PC-Storage через AWS SDK for Java, указывая endpoint в настройках клиента. Код остаётся таким же, как при работе с AWS S3.

AWS SDK для Java поддерживает кастомные endpoints через EndpointConfiguration.
Пример демонстрирует создание клиента, загрузку файла, список объектов и скачивание – базовые операции, используемые в корпоративных приложениях и микросервисах.

Пример Java-кода для PC-Storage

import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.client.builder.AwsClientBuilder;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.*;

import java.io.File;
public class PCStorageExample {
public static void main(String[] args) {
BasicAWSCredentials creds =
new BasicAWSCredentials(«YOUR_ACCESS_KEY», «YOUR_SECRET_KEY»);
AmazonS3 s3 = AmazonS3ClientBuilder.standard()
.withEndpointConfiguration(
new AwsClientBuilder.EndpointConfiguration(
«https://eu-s3.platformcraft.com»,
«ru-central»))
.withPathStyleAccessEnabled(true)
.withCredentials(new AWSStaticCredentialsProvider(creds))
.build();
String bucket = «demo-bucket»;
// Загрузка файла
s3.putObject(new PutObjectRequest(bucket, «example.txt», new File(«local.txt»)));
System.out.println(«Файл загружен.»);
// Список объектов
ObjectListing objects = s3.listObjects(bucket);
for (S3ObjectSummary summary : objects.getObjectSummaries()) {
System.out.println(«Объект: » + summary.getKey());
}
// Скачивание файла
S3Object object = s3.getObject(bucket, «example.txt»);
System.out.println(«Размер скачанного файла: » + object.getObjectMetadata().getContentLength());
}
}

FAQ – часто задаваемые вопросы

  1. Что такое S3-API в PC-Storage?

Это интерфейс доступа к объектному хранилищу PlatformCraft. С помощью S3-API можно работать с хранилищем, отправляя к нему вызовы.

  1. Как настраивать запросы к S3-API PC-Storage?

Что значит настраивать? Есть документация, где описаны вызовы, их параметры и приведены примеры. Если вам требуется отправление вызовов не через AWS CLI, то необходимо генерировать подпись самому и подписывать каждый вызов, формируя несколько заголовков.

  1. Есть ли готовые примеры кода для PC-Storage?

Да, PC-Storage поддерживается стандартными SDK. Подключение выполняется через кастомный endpoint, а дальше используются обычные методы: putObject, getObject, listObjects, upload_file() и другие. Есть документация по библиотеке Amazon для работы с S3 boto3.

  1. Какие параметры конфигурации наиболее важны?

Основные параметры – это endpoint, ключи доступа, регион и настройки для больших файлов. При необходимости можно управлять метаданными, типами контента и политиками доступа. Можно настроить политики доступа в хранилище, версионирование, блокировку объектов.

  1. Как тестировать S3-API перед интеграцией?

Можно использовать AWS CLI, s3cmd или rclone: выполнить загрузку одного файла, проверить список объектов и убедиться, что операции завершаются корректно. После этого SDK можно подключать без дополнительной адаптации. В случае возникновения вопросов вы можете связаться с нашей техподдержкой.

Выводы

S3-API PC-Storage повторяет основные механизмы AWS S3, позволяя разработчикам интегрировать хранилище без изменений в кодовой базе и без изучения новых протоколов.
PC-Storage – это объектное хранилище без ограничений на S3-операции. Решение полностью российское, имеет гибкий API и прозрачную конфигурацию. Вы можете использовать хранилище в широком спектре задач – от бэкапов и потоковой обработки данных до интеграций с корпоративными системами и микросервисами.
Миграция и интеграция с вашими сервисами проходит быстро и просто, а для работы с самим хранилищем вы можете использовать наш веб-интерфейс или привычные инструменты (О:диск, AWS CLI, boto3, AWS Java SDK, rclone и s3cmd).

Подпишитесь на наши новости,
чтобы быть в курсе всех событий

    Прокрутить вверх