Если обычный диск на сервере — это строгий органайзер с папками, то S3 — это большой склад.
В нём все файлы лежат в общем пространстве, которое называется бакет, и у каждого объекта на этом складе есть свой уникальный ключ-имя.
Это идеальное место для данных, которые нужно один раз сохранить и потом часто скачивать.
Преимущества
- Масштабируемость: объём хранилища можно увеличить в любой момент, не нужно заранее планировать размер диска.
- Производительность: доступ с минимальной задержкой независимо от объёма данных.
- Экономичность: S3 обходится дешевле, чем расширять диск сменой тарифа хостинга или VDS.
- Отказоустойчивость: мы используем метод двойной репликации — копии ваших данных хранятся независимо друг от друга на разных серверах.
Что хранить в S3
Этот тип хранилища оптимален для сценария, когда файлы редко меняются и часто используются.
Поэтому в S3 рекомендуется хранить:
- Архивы с бекапами
- Статику для сайтов (картинки, JS, CSS, шрифты)
- Мультимедийный контент
- Большие данные и DWH (логи, архивные данные, документы)
Из-за своей специфики объектное хранилище не подойдёт для данных, требующих частого изменения.
Как начать работу
- Создание бакета
Зайдите в Панель управления в раздел S3 и нажмите кнопку «Создать бакет». Бакет — это контейнер для ваших файлов.
- Данные для подключения
После создания бакета вы получите данные для подключения.Они будут продублированы на почту:
- URL: https://s3.spb.sprinthost.ru/
- Name — имя вашего бакета, например: s3-123456
- Access Key — публичный идентификатор ключа
- Secret Access Key — секретный ключ. Сохраните его сразу — после закрытия окна он больше не отображается
- Region: spb
- Подключение
Вы можете работать с данными любым удобным способом:- Через API или SDK
- С помощью консольных утилит — s3cmd, AWS CLI
- Через файловые клиенты: Cyberduck, WinSCP, S3 Browser
Работа с файлами
S3 Browser
S3 Browser — бесплатный клиент для работы с S3-хранилищами на Windows. Он даёт возможность работать с файлами через графический интерфейс.
Для подключения к бакету укажите следующие данные:
Display name: можно задать любое удобное имя Account type: S3 Compatible Storage API endpoint: s3.spb.sprinthost.ru Access Key ID: ваш ключ доступа Secret Access Key: ваш секретный ключ
Заполните поля полученными при создании бакета значениями и нажмите «Add new account».

Теперь содержимым хранилища можно управлять через приложение, используя стандартные кнопки для скачивания и загрузки.
S3 Explorer
S3 explorer — бесплатный файловый клиент для Unix-подобных систем. Установить его можно, используя snap:
sudo snap install s3explorer
Для подключения к бакету укажите следующие данные:
Profile Name: любое удобное имя Access Key ID: ваш ключ доступа Secret Access Key: ваш секретный ключ Region: Default Endpoint: https://s3.spb.sprinthost.ru
Введите их в форму программы по шаблону.

Чтобы проверить корректность введенных данных, нажмите «Test Connection». Если всё верно, кликните «Create».
Настройка AWS CLI
Создайте профиль:
aws configure --profile ваш_бакет
Далее укажите данные, полученные при создании хранилища.
AWS Access Key ID [None]: XXXXXXXXXXXXXXXXX AWS Secret Access Key [None]: SECRETKEY Default region name [None]: spb Default output format [None]:
Default output format по умолчанию использует json, также можно указать другие значения:
- json
- table
- text
- yaml
- yaml-stream
- off
Базовые команды
Действие | Команда |
|---|---|
Действие Показать файлы в бакете | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 ls s3://ВАШ_БАКЕТ/ |
Действие Загрузить файл | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 cp ./file.txt s3://ВАШ_БАКЕТ/file.txt |
Действие Скачать файл | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 cp s3://ВАШ_БАКЕТ/file.txt ./file.txt |
Действие Скопировать файл | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 cp s3://ВАШ_БАКЕТ/old.txt s3://ВАШ_БАКЕТ/new.txt |
Действие Удалить файл | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 rm s3://ВАШ_БАКЕТ/file.txt |
Действие Загрузить папку рекурсивно | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 cp ./папка/ s3://ВАШ_БАКЕТ/папка/ --recursive |
Действие Синхронизировать папки | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 sync ./локальная/ s3://ВАШ_БАКЕТ/удалённая/ |
Действие Создать временную ссылку | Команда aws --endpoint-url=https://s3.spb.sprinthost.ru/ --profile s3-123456 s3 presign s3://ВАШ_БАКЕТ/file.txt --expires-in 3600 |
Подключение к сайту
WordPress
В WordPress подключение настраивается через плагины. Выбор зависит от того, как вам удобнее работать. В этой инструкции рассмотрим два варианта.
Через админку: любой бесплатный плагин для WordPress (Upcasted S3 Offload, Media Cloud и другие).
Подойдёт для простой настройки. В бесплатных версиях нельзя одной кнопкой перенести на S3 старые картинки, загруженные на сайт ранее.
В настройках плагина укажите:
- Choose your S3 Provider: Other S3 compatible provider
- Access key ID: идентификатор ключа из панели управления
- Secret access key: секретный ключ из панели управления
- Region: Other (custom) - spb
- Define custom endpoint: s3.spb.sprinthost.ru
Save Connection Settings → Select an existing bucket. Выберите имя бакета и нажмите Save.

Через консоль: с помощью плагина S3 Uploads.
Для установки понадобится подключиться к аккаунту по SSH.
Joomla
- Connection type: Custom S3-compatible storage provider
- Custom Endpoint: s3.spb.sprinthost.ru
- Access Key: идентификатор ключа
- Secret Key: секретный ключ
- Bucket: имя бакета
- Region: (custom)
- Custom Region: spb

1С-Битрикс
Поддержка S3 уже встроена, дополнительно ничего устанавливать не нужно.
Перейдите в Настройки → Облачные хранилища и нажмите Добавить. Выберите S3 compatible storage и заполните поля:
Перейдите в Настройки → Облачные хранилища и нажмите Добавить. Выберите S3 compatible storage и заполните поля:
- Регион: spb
- Имя сервера (API host): s3.spb.sprinthost.ru
- Ключ доступа: идентификатор ключа
- Секретный ключ: секретный ключ
- Контейнер: имя бакета

Настройка политики CORS
При использовании файлов из хранилища на сайтах вы можете столкнуться с ошибкой, связанной с политикой CORS. Чтобы её решить, нужно настроить разрешение кросс-доменных запросов в S3.
Настройка правил CORS для бакетов выполняется с помощью AWS CLI.
Создание файла CORS
Создайте JSON-файл cors.json с описанием нужных правил. Стандартный формат для AWS S3 выглядит следующим образом:
{
"CORSRules": [
{
"AllowedHeaders": ["*"],
"AllowedMethods": ["GET", "HEAD"],
"AllowedOrigins": ["https://example.ru"],
}
]
}Подробнее о параметрах:
- AllowedOrigins — список доменов, с которых разрешены запросы. Используйте ["*"], если хотите разрешить запросы с любых доменов.
- AllowedMethods — разрешенные HTTP-методы (GET, POST, PUT, DELETE, HEAD).
- AllowedHeaders — заголовки, которые клиент может отправлять в запросе. ["*"] разрешает любые заголовки.
Работа с правилами в бакете
Чтобы применить настройки к бакету, используйте команду:
aws s3api put-bucket-cors --bucket s3-123456 --endpoint-url https://s3.spb.sprinthost.ru --cors-configuration file://cors.json
Чтобы проверить, какие CORS-правила уже применены к бакету, выполните команду:
aws s3api get-bucket-cors --bucket s3-123456 --endpoint-url https://s3.spb.sprinthost.ru
В ответе вы получите ранее загруженный JSON.
Чтобы удалить текущие правила, используйте такую команду:
aws s3api delete-bucket-cors --bucket s3-123456 --endpoint-url https://s3.spb.sprinthost.ru
Проверка отдачи заголовков
Чтобы убедиться, что прокси корректно отдает CORS-заголовки, отправьте тестовый запрос к любому файлу в бакете с помощью curl.
Укажите в команде сайт, для которого выполняется проверка, и путь до файла.
curl -I -H "Origin: https://example.ru" "https://s3.spb.sprinthost.ru/s3-123456/picture.jpg"
В выводе вы должны увидеть строки, подтверждающие работу CORS:
curl -I -H "Origin: https://example.ru" "https://s3.spb.sprinthost.ru/s3-123456/picture.jpg" HTTP/1.1 200 OK Access-Control-Allow-Origin: https://example.ru Vary: Origin Access-Control-Allow-Methods: HEAD
Проверка preflight-запроса
Браузеры перед загрузкой файлов часто отправляют предварительный запрос методом OPTIONS. Проверить его можно так:
curl -v -X OPTIONS -H "Origin: https://example.ru" -H "Access-Control-Request-Method: GET" "https://s3.spb.sprinthost.ru/s3-123456/picture.jpg"
В ответе должен вернуться статус 200 OK и список разрешенных методов и заголовков:
HTTP/1.1 200 OK ... Access-Control-Allow-Origin: https://example.ru Access-Control-Allow-Methods: GET, HEAD Access-Control-Allow-Headers: *
То же самое можно проверить и с помощью wget.
wget --server-response --header="Origin: https://example.ru" -O /dev/null "https://s3.spb.sprinthost.ru/s3-123456/picture.jpg"