Перетащите файлы в окно браузера или выберите вручную - загрузка идёт очередью с прогрессом по каждому файлу. Большие файлы разбиваются на части автоматически (multipart). Создавайте папки, переименовывайте, удаляйте, скачивайте по одному или сразу несколько.
S3-хранилище: подключение и клиенты
Объектное хранилище Fatmetal совместимо с Amazon S3 API - подключается любым S3-клиентом, GUI, SDK или готовым приложением. Достаточно указать реквизиты и включить path-style адресацию.
01 · Что понадобится (реквизиты)
После создания хранилища в панели вы получаете пять значений - держите их под рукой:
| Что | Пример | Где взять |
|---|---|---|
| Endpoint | https://ssd-1.s3.fatmetal.ru | панель → хранилище → Подключение |
| Bucket | my-storage | имя, которое вы задали |
| Region | см. панель | панель → хранилище → Подключение |
| Access Key ID | GK… | панель |
| Secret Access Key | … | показывается один раз при создании |
ssd-1.s3.fatmetal.ru во всех примерах ниже - лишь образец SSD-хранилища; подставляйте свой. Secret Access Key показывается один раз при создании и не хранится - сохраните сразу. Дополнительные ключи вы выпускаете сами в панели (раздел «Ключи доступа»), в том числе только на чтение - см. §10.02 · Обязательно: path-style адресация
Это единственная нестандартная настройка, но без неё подключение не заработает. S3-клиенты обращаются к объектам двумя способами:
- virtual-hosted (по умолчанию у многих):
my-storage.ssd-1.s3.fatmetal.ru/photo.jpg - path-style (нужен нам):
ssd-1.s3.fatmetal.ru/my-storage/photo.jpg
Мы работаем в path-style. Если клиент по умолчанию использует virtual-hosted, он обратится к несуществующему хосту и выдаст ошибку вроде «не резолвится my-storage.ssd-1.s3.fatmetal.ru». В конфигурациях ниже path-style уже включён (force_path_style, addressing_style: path или галочка в GUI).
03 · Файловый менеджер прямо в панели
Проще всего начать работу с хранилищем - открыть его в панели. Встроенный файловый менеджер закрывает повседневные задачи без единой команды и без установки стороннего клиента: откройте хранилище, загружайте и качайте файлы мышью, наводите порядок в папках.
Изображения, видео, аудио, PDF и текстовые файлы открываются прямо в панели - не нужно скачивать, чтобы заглянуть в содержимое. Навигация по вложенным папкам через хлебные крошки.
Поделитесь файлом по временной ссылке с ограниченным сроком действия - удобно отдать коллеге или клиенту, не выдавая ключи доступа ко всему хранилищу.


04 · Терминал
aws-cli
Универсальный клиент. Настройка выполняется один раз:
Дальше работаете как с обычным S3, добавляя --endpoint-url (endpoint - из панели, в примере SSD):
--endpoint-url каждый раз, заведите alias: alias fms3='aws --endpoint-url https://ssd-1.s3.fatmetal.ru s3'.rclone
Удобен, когда S3 не единственное хранилище. В ~/.config/rclone/rclone.conf:
s3cmd
Лёгкий вариант для скриптов. ~/.s3cfg:
05 · GUI-клиенты
Если командная строка не ваш вариант - подойдёт любой S3-клиент. Настройки похожие: протокол Amazon S3, сервер (endpoint из панели, без схемы) и включённый path-style.
- Cyberduck (Windows, macOS): протокол Amazon S3, сервер
ssd-1.s3.fatmetal.ru, ключи из панели, в дополнительных настройках включить «Path-style requests». - WinSCP (Windows): протокол Amazon S3, хост
ssd-1.s3.fatmetal.ruпорт 443, в «Дополнительно → S3» выбрать стиль URL «Path». - S3 Browser (Windows): аккаунт типа S3 Compatible Storage, endpoint
ssd-1.s3.fatmetal.ruи ключи, включить path-style.
06 · Из кода (SDK)
Принцип везде одинаков: endpoint (свой из панели), ключи, регион rzn и path-style.
Python (boto3)
JavaScript / Node.js (AWS SDK v3)
PHP (AWS SDK)
Go (aws-sdk-go-v2)
07 · Готовые приложения
Во всех примерах ниже ssd-1.s3.fatmetal.ru - образец; подставьте endpoint своего хранилища из панели.
restic (бэкапы)
Docker Registry (образы в S3) - config.yml
GitLab CI (артефакты и статика)
- Nextcloud: «Внешние хранилища → добавить → Amazon S3», хост
ssd-1.s3.fatmetal.ru, включить SSL и path-style, указать bucket и ключи. - Duplicati (GUI-бэкапы): хранилище «S3 Compatible», endpoint
ssd-1.s3.fatmetal.ru, ключи, в опциях включить path-style.
08 · Объём и тарификация
- Оплата за объём (квоту) хранилища, за ГБ в месяц. Списание с баланса аккаунта, как за другие услуги.
- Объём меняется на лету из панели («Изменить объём») - применяется сразу, без пересоздания бакета и простоя.
- При достижении квоты запись новых объектов вернёт ошибку лимита. Освободите место или увеличьте объём.
- Занятое место и число объектов видны в панели (карточка хранилища).
09 · Что поддерживается, а что нет
Хранилище построено на Garage. Он покрывает базовый S3 API, но не все расширенные возможности Amazon S3.
Не поддерживается (эти запросы вернут 501 Not Implemented):
10 · Ключи доступа
У хранилища есть основной ключ - он выдаётся вместе с бакетом, через него бакет доступен по имени. Отозвать основной ключ нельзя; перевыпуск - через поддержку. Кроме него в панели (раздел «Ключи доступа») вы сами выпускаете дополнительные ключи.
- Несколько ключей на одно хранилище. Выпускайте отдельный ключ под каждую задачу (бэкапы, CI, раздача) - при утечке достаточно отозвать один, остальные продолжат работать.
- Права переключаются: ключ можно выдать только на чтение (read-only) - например для раздачи файлов или стороннего сервиса - или на чтение и запись. Права дополнительного ключа меняются в панели.
- Отзыв в один клик. Ненужный дополнительный ключ отзывается в панели мгновенно, без влияния на остальные ключи и на данные.
- Secret показывается один раз при создании ключа и у нас не хранится. Потеряли - выпустите новый ключ и отзовите старый.
- Ключ = доступ к бакету. Не публикуйте secret в репозиториях, логах и на фронтенде. Для публичной раздачи используйте read-only ключ или временные ссылки, а не основной ключ.
11 · Именование бакета и изоляция
- Имя бакета: только строчная латиница, цифры и дефис (
a-z,0-9,-), длина 3-63 символа, не начинается и не заканчивается дефисом. Регистр важен во всех обращениях. - Изоляция. Ваш ключ видит только ваши бакеты. Данные разных клиентов полностью разделены.
12 · Оплата и статусы
Хранилище тарифицируется за объём (квоту). Если баланс аккаунта уходит в минус, хранилище меняет статус:
- NOT PAID - уведомительный статус, ограничений на работу нет: читаете и пишете как обычно.
- BLOCK - остаются листинг, скачивание и удаление, но запись запрещена. Данные не удаляются. После оплаты доступ возвращается автоматически.
Если что-то не подключается
Клиент использует virtual-hosted стиль. Включите path-style - у нас адрес строится как endpoint/bucket/key, а не bucket.endpoint.
Проверьте имя бакета (регистр важен: My-Bucket ≠ my-bucket) и что включён path-style. Имя в клиенте должно точно совпадать с именем в панели.
Проверьте пару ключей (Access Key ID + Secret) и что обращаетесь к своему бакету. Опечатка в secret или чужое имя бакета дают именно 403.
Вызвана неподдерживаемая операция - versioning, object-lock, bucket policy или tagging. Отключите её в настройках клиента (см. «Что поддерживается»).
Хранилище заполнено до квоты. Освободите место (удалите ненужное) или увеличьте объём в панели («Изменить объём») - применяется сразу.
Secret показывается один раз при создании и у нас не хранится. Для дополнительного ключа - выпустите в панели новый и отзовите старый. Основной ключ хранилища перевыпускает поддержка.
Удаление хранилища в панели удаляет бакет и отзывает все его ключи; данные теряются безвозвратно. Восстановления нет (versioning не поддерживается) - сохраните копию заранее.
Запустите команду с --debug (aws-cli) или -vv (rclone): в логе видно, какой хост и стиль адресации использует клиент. Проверьте endpoint со схемой https://, path-style, region rzn, пару ключей и регистр имени бакета.