Быстрый старт с DigitalOcean Spaces и S3Cmd
Быстрые ссылки
- Создание Space
- Генерация ключей доступа для Spaces
- Настройка S3Cmd
- Загрузка файлов
- Просмотр списка файлов
- Удаление файлов
- Практики безопасности и чек‑лист
- Заключение

DigitalOcean Spaces — это объектное хранилище, совместимое с Amazon S3, с встроенным CDN и предсказуемой ценой. Подходит для резервных копий, хранения артефактов и хостинга статических сайтов через CDN.
Ключевые параметры тарифного уровня, приведённые автором:
- $5 в месяц (цена в долларах США)
- 250 ГБ объёма хранения
- 1 ТБ исходящего трафика
- Неограниченное количество загрузок
- Неограниченное число Spaces
Важно: не выдумывайте цены — ориентируйтесь на актуальные данные на сайте DigitalOcean.
Создание Space
После входа в DigitalOcean нажмите кнопку создания Space. При конфигурировании вам нужно выбрать:
- Регион дата‑центра
- Включить CDN или нет
- Разрешить или запретить листинг файлов (список объектов)
- Уникальное имя для Space
Важно: опция листинга определяет только возможность просмотреть перечень объектов и их метаданные (имя, размер), но не разрешает анонимный доступ к самим файлам — для этого отдельная настройка публичного доступа.
В примере выбираем регион Datacenter Region 2 (San Francisco), включаем CDN без кастомного поддомена и запрещаем анонимный листинг.

Даем Space уникальное имя, например:
lc-articlesи при необходимости помещаем в проект. Нажимаем Create a Space для создания.

После создания в интерфейсе будет видно, что объектов пока нет; через GUI можно загружать файлы и создавать папки.

В разделе Settings доступны полезные опции: Purge Cache (очистка CDN), CORS, политики доступа и пр.

Генерация ключей доступа для Spaces
Перейдите в Account → API и в секции Tokens/Keys нажмите Generate New Key для доступа к Spaces. Введите имя для ключа, сохраните — система покажет Access Key и Secret Key.
Важно: секретный ключ виден только один раз. Скопируйте Secret в надёжное место (например, менеджер секретов), иначе восстановить его будет нельзя.
Эти два значения понадобятся для настройки s3cmd или любого S3‑совместимого клиента.
Настройка S3Cmd
В статье используется s3cmd для работы с Spaces из Ubuntu. Установка на Ubuntu:
apt install s3cmdДля создания конфигурации выполните:
s3cmd --configureПри конфигурировании обратите внимание на следующие поля:
- Access Key — ключ из раздела API
- Secret Key — секретный ключ (обязательно)
- Default Region — можно оставить US или указать нужный регион
- S3 Endpoint — берите из настроек вашего Space (пример: nyc3.digitaloceanspaces.com)
- DNS Based Bucket Syntax — замените на:
%(bucket)s.{region}.digitaloceanspaces.comи подставьте {region} в соответствии с панелью управления
- Encryption Password — можно оставить пустым
- GPG Program Path — оставьте значение по умолчанию
- HTTPS Protocol — рекомендуется включённый по умолчанию
- Proxy — оставьте пустым, если прокси не используется
Используйте тест подключения в мастере конфигурации, чтобы убедиться, что параметры верны.

Проверка подключения (должен отобразиться ваш Space):
s3cmd ls
Загрузка файлов
Команда для загрузки файла в Space:
s3cmd put filename s3://DigitalOcean-Space-NameПример вывода при успешной загрузке:

Загрузка доступна и через GUI, где вы также увидите загруженные объекты.

Просмотр списка файлов
Чтобы перечислить объекты в Space, используйте команду, похожую на linux ls:
s3cmd ls s3://DigitalOcean-Space-Name
Для получения метаданных конкретного объекта применяйте info:
s3cmd info s3://DigitalOcean-Space-Name/filename
Удаление файлов
Удаление объекта выполняется командой:
s3cmd del s3://DigitalOcean-Space-Name/filenameПосле удаления проверьте, что объект больше не отображается в списке и в веб‑интерфейсе.
В примере был удалён файл testfile1.zip и подтверждён его уход как в CLI, так и в GUI.

Справочник команд (cheat sheet)
- Установить s3cmd:
apt install s3cmd- Конфигурировать s3cmd:
s3cmd --configure- Показать все Spaces:
s3cmd ls- Перечислить объекты в Space:
s3cmd ls s3://- Загрузить файл:
s3cmd put localfile s3://- Получить метаданные файла:
s3cmd info s3:///remote-file - Удалить файл:
s3cmd del s3:///remote-file Мини‑методология: быстрый рабочий сценарий для бэкапа
- Собрать бэкап в tar.gz:
tar czf /tmp/app-backup-$(date +%F).tar.gz /var/www. - Проверить целостность архива:
tar tzf ... >/dev/null. - Загрузить в Space:
s3cmd put /tmp/app-backup-... s3://lc-articles/backups/. - Проверить наличие:
s3cmd ls s3://lc-articles/backups/. - Хранить списки и метаданные в CI/CD секретах.
Рекомендации по безопасности и жёсткая конфигурация
Важно следовать принципу наименьших привилегий и надёжно хранить ключи доступа.
- Храните Access/Secret Key в специальных хранилищах секретов (Vault, AWS Secrets Manager, GitLab CI secrets).
- Не включайте секреты в репозитории и не встраивайте их в публичные образы.
- Ограничивайте доступ по IP, если это поддерживается в вашей архитектуре.
- Используйте политики на уровне проекта/пользователя, чтобы выдать только необходимые права (чтение/запись/удаление).
- Активируйте HTTPS и следите за сертификатами CDN, если используете кастомный домен.
- Регулярно ротацируйте ключи и реализуйте процедуру инвентаризации ключей.
Краткий план реагирования при утечке ключа:
- Немедленно отозвать скомпрометированный ключ в панели API.
- Сгенерировать новый ключ и обновить конфигурации клиентов.
- Проанализировать логи доступа и определить возможный ущерб.
- Восстановить из резервных копий при необходимости.
Когда это может не подойти (контраргументы)
- Нужна глубокая интеграция с AWS‑экосистемой (IAM, Lambda, Glacier) — нативный S3 в AWS удобнее.
- Требуются гарантия соответствия локальным требованиям хранения данных (геозоны, сертификации) — проверьте соответствие DigitalOcean требованиям вашей организации.
- Масштаб хранения в петабайтах с тонкой тарификацией — специализированные провайдеры хранения могут быть экономичнее.
Альтернативные подходы
- MinIO — S3‑совместимое решение для развёртывания в собственном дата‑центре.
- Amazon S3 — нативный S3 с полной интеграцией AWS.
- Backblaze B2 — низкая цена за хранилище и похожая модель доступа.
Роли и чек‑лист (для внедрения)
Администратор инфраструктуры:
- Создать Space и политики доступа
- Настроить CDN и CORS
- Настроить периодический аудит ключей
DevOps/CI:
- Интегрировать загрузку бэкапов в CI/CD
- Хранить ключи в секретном хранилище
- Настроить мониторинг использования трафика и объёма
Разработчик:
- Использовать SDKs/CLI для выгрузки артефактов
- Проверять наличие файлов после загрузки
Факт‑бокс: ключевые числа
- Базовый тариф, указанный автором: $5/мес, 250 ГБ, 1 ТБ исходящего трафика.
- Поддерживаются S3‑совместимые API, поэтому большинство инструментов (s3cmd, rclone, boto3) работают без изменений.
Краткое руководство по соответствию и приватности
- Если вы обрабатываете персональные данные, убедитесь, что политика хранения и удаления соответствует GDPR/локальным законам.
- Не храните персональные данные дольше, чем это необходимо; реализуйте автоматические правила удаления/жизненного цикла объектов при необходимости.
Важно: при обработке персональных данных всегда консультируйтесь с юристом по защите данных вашего региона.
Критерии приёмки
- Space создан и доступен через s3cmd:
s3cmd lsпоказывает новый Space. - Один тестовый файл загружен и доступен:
s3cmd put testfile s3://иs3cmd infoвозвращает метаданные. - Установлены безопасные практики хранения ключей (не хранить в репозитории).
Короткая проверка (test cases)
- Позитивный: загрузить файл и проверить его скачивание через CDN (если включён).
- Негативный: попытка чтения без ключей должна возвращать отказ.
- Граничный: загрузить файл >250 ГБ и проверить поведение тарифа и ограничения.
Глоссарий (одна строка)
- Space — контейнер объектного хранения в DigitalOcean, аналог S3 bucket.
- CDN — сеть доставки контента, ускоряет доставку статических файлов.
- Access Key / Secret Key — учетные данные для API‑доступа.
Заключение
DigitalOcean Spaces — быстрый и недорогой способ организовать объектное хранилище с CDN. Это удобный вариант для резервных копий, хранения артефактов и хостинга статических сайтов, особенно если вы уже используете DigitalOcean. В продакшене важно настроить безопасное хранение ключей, политики доступа и ротацию ключей. Для более сложных сценариев сравните возможности с AWS S3, MinIO или Backblaze.
Важно: всегда проверяйте актуальные тарифы и ограничения на сайте провайдера.
Короткое резюме:
- Создайте Space, сгенерируйте ключи доступа, настройте s3cmd и протестируйте загрузку/удаление файлов.
- Следуйте принципам безопасности (хранение ключей, права доступа, ротация).
Похожие материалы
Как устроить идеальную VR‑вечеринку
Роли в Discord: создание и назначение
Как делиться и скачивать циферблаты Apple Watch
Преодолеть укачивание в VR
Бесплатное резервное копирование — простые способы