Skip to content

Amazon S3 и S3-совместимые хранилища

Бакет S3 можно просматривать в панели как любую папку. Выберите Подключиться к Amazon S3… в меню Сеть, укажите точку доступа и ключи — и хранилище появится в активной панели, где верхний уровень — список бакетов, а каждый бакет ниже — обычный каталог.

Работает с Amazon S3 и со всем, что говорит на том же протоколе: MinIO, Ceph/RADOS Gateway, Cloudflare R2, Wasabi, Backblaze B2 и DigitalOcean Spaces доступны.

Это плагин, поэтому его можно отключить или удалить в Конфигурация ▸ Плагины….

Подключение

Меню Служба заполняет две настройки, которые нельзя угадать, — использовать ли HTTPS и нужна ли точке доступа адресация по пути — а саму точку доступа оставляет вам, поскольку она обычно зависит от учётной записи. Обе настройки отказывают так, что это выглядит чем-то другим: адресация через имя хоста к «голому» IP-адресу — ошибка разрешения имён, а адресация по пути к Amazon — «нет такого бакета», что читается как отсутствующий бакет.

Секретный ключ попадает в Связку ключей через основную программу, а не в файл настроек. Оставьте поле пустым при следующем подключении — будет использован сохранённый.

Запомнить это подключение сохраняет точку доступа, регион, ID ключа и способ адресации — но никогда сам секрет — в ~/Library/Application Support/PeachCommander/s3/profiles.json. Запомненное подключение становится ещё и кнопкой на панели дисков, и щелчок по ней подключает его напрямую, не открывая этот диалог снова.

Профили, которые у вас уже есть

Если вы пользуетесь командной строкой AWS, её профили предлагаются в меню Имя с пометкой (AWS CLI) и читаются из ~/.aws/credentials и ~/.aws/config — вместе с регионом, токеном сессии и s3.addressing_style. Обратно туда ничего не записывается, и такой профиль не запоминается по умолчанию: держать вторую копию секрета — это то, о чём просят, а не то, что случается из-за выбора имени в меню.

Публичные бакеты

Анонимное подключение вовсе не отправляет подпись — именно этого хочет публично читаемый бакет. Если бакет не публичный, вам скажут именно это, а не что ключ отвергнут: ключа не было.

Что можно делать

Просмотр, чтение, запись, создание папок и бакетов, удаление, переименование и перемещение — всё работает. Копирование и перемещение происходят на сервере: байты не идут через ваш Mac.

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

На верхнем уровне Новая папка создаёт бакет — этот уровень и есть список бакетов, иного смысла там быть не может.

Класс хранения и ETag доступны как столбцы панели (правый щелчок по заголовку). Оба берутся из уже полученного списка и ничего не стоят.

Чего от него ждать

Бакет нельзя переименовать. В S3 нет такой операции, а альтернатива — скопировать каждый объект в новый бакет и удалить старый — не то, о чём просил диалог переименования. Это отклоняется, а не имитируется.

Передача идёт целыми файлами. Файл берётся или отправляется одним куском; прерванная передача начинается заново, а не продолжается. Большие загрузки автоматически делятся на части; если часть не удалась, части убираются, а не остаются, чтобы за них платили.

Переименование папки не атомарно. Копирование и удаление идут по одному объекту, и на первой ошибке всё останавливается, а не продолжается в состояние «наполовину перемещено».

Архивные объекты нельзя прочитать напрямую. Объект в Glacier или Deep Archive нужно сначала восстановить — в консоли AWS или через CLI. Панель так и говорит, а не отказывает так, будто объект повреждён.

Список очень большой папки строится столько, сколько нужно серверу. Объекты приходят по тысяче, и панель заполняется, когда пришла последняя страница.

Каждый запрос в платной службе стоит денег. Плагин написан так, чтобы спрашивать как можно меньше — столбцы берутся из уже полученного списка, регион бакета узнаётся один раз и запоминается — но просмотр бакета не бесплатен, как просмотр диска.