Искать в Базе знаний

Хранилище S3

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

Преимущества

  • Масштабируемость: объём хранилища можно увеличить в любой момент, не нужно заранее планировать размер диска.
  • Производительность: доступ с минимальной задержкой независимо от объёма данных.
  • Экономичность: S3 обходится дешевле, чем расширять диск сменой тарифа хостинга или VDS.
  • Отказоустойчивость: мы используем метод двойной репликации — копии ваших данных хранятся независимо друг от друга на разных серверах.

Что хранить в S3

Этот тип хранилища оптимален для сценария, когда файлы редко меняются и часто используются. Поэтому в S3 рекомендуется хранить:
  • Архивы с бекапами
  • Статику для сайтов (картинки, JS, CSS, шрифты)
  • Мультимедийный контент
  • Большие данные и DWH (логи, архивные данные, документы)
Из-за своей специфики объектное хранилище не подойдёт для данных, требующих частого изменения.

Как начать работу

  1. Создание бакета
    Зайдите в Панель управления в раздел S3 и нажмите кнопку «Создать бакет». Бакет — это контейнер для ваших файлов.
    content-image
  2. Данные для подключения
    После создания бакета вы получите данные для подключения.
    content-image
    Они будут продублированы на почту:
    • URL: https://s3.spb.sprinthost.ru/
    • Name — имя вашего бакета, например: s3-123456
    • Access Key — публичный идентификатор ключа
    • Secret Access Key — секретный ключ. Сохраните его сразу — после закрытия окна он больше не отображается
    • Region: spb
  3. Подключение
    Вы можете работать с данными любым удобным способом:
    • Через 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».
content-image
Теперь содержимым хранилища можно управлять через приложение, используя стандартные кнопки для скачивания и загрузки.

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
Введите их в форму программы по шаблону.
content-image
Чтобы проверить корректность введенных данных, нажмите «Test Connection». Если всё верно, кликните «Create».

Настройка AWS CLI

Установите 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.
content-image
Через консоль: с помощью плагина S3 Uploads. Для установки понадобится подключиться к аккаунту по SSH.

Joomla

Подключение выполняется через плагин Amazon S3 Filesystem.
  • Connection type: Custom S3-compatible storage provider
  • Custom Endpoint: s3.spb.sprinthost.ru
  • Access Key: идентификатор ключа
  • Secret Key: секретный ключ
  • Bucket: имя бакета
  • Region: (custom)
  • Custom Region: spb
content-image

1С-Битрикс

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