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 – часто задаваемые вопросы
- Что такое S3-API в PC-Storage?
Это интерфейс доступа к объектному хранилищу PlatformCraft. С помощью S3-API можно работать с хранилищем, отправляя к нему вызовы.
- Как настраивать запросы к S3-API PC-Storage?
Что значит настраивать? Есть документация, где описаны вызовы, их параметры и приведены примеры. Если вам требуется отправление вызовов не через AWS CLI, то необходимо генерировать подпись самому и подписывать каждый вызов, формируя несколько заголовков.
- Есть ли готовые примеры кода для PC-Storage?
Да, PC-Storage поддерживается стандартными SDK. Подключение выполняется через кастомный endpoint, а дальше используются обычные методы: putObject, getObject, listObjects, upload_file() и другие. Есть документация по библиотеке Amazon для работы с S3 boto3.
- Какие параметры конфигурации наиболее важны?
Основные параметры – это endpoint, ключи доступа, регион и настройки для больших файлов. При необходимости можно управлять метаданными, типами контента и политиками доступа. Можно настроить политики доступа в хранилище, версионирование, блокировку объектов.
- Как тестировать 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).




