Перейти к документации
ДокументацияХранилище S3

Хранилище S3

Подключите бакет Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Google Cloud Storage или любого S3-совместимого хранилища. Агенты смотрят, читают, записывают и удаляют объекты; секретный ключ остаётся у Sallyport.

На этой странице

Агент называет объект. Sallyport подписывает запрос AWS Signature V4, отправляет его в ваш бакет и возвращает ответ. Ключ доступа и его секрет агент не видит.

Подключите бакет

  • Откройте Добавить ключ сервиса и выберите «Хранилище S3» в поле «Источник ключа».
  • Выберите «Хранилище». «Регион» и «Адрес хранилища» заполнятся сами; если поменять «Регион», адрес поменяется следом.
  • Введите «Бакет». Агенты работают с этим бакетом и больше ни с чем в хранилище.
  • Создайте в хранилище ключ, которому доступен только этот бакет, и вставьте «Идентификатор ключа доступа» и «Секретный ключ доступа».
  • «Название подключения» совпадает с именем бакета, пока вы его не измените. Выберите «Рабочее пространство» и «Среду».
  • Нажмите «Сохранить и проверить ключ». Sallyport запечатает ключ, создаст подключение и прочитает с ним один объект из списка бакета.

Результат виден на странице ключа в блоке «Куда ведёт ключ». Неверный секрет отклоняется там же, словами самого хранилища, раньше, чем его попробует агент. Бакетом сразу могут пользоваться все агенты рабочего пространства.

ХранилищеАдрес хранилищаРегион
Amazon S3https://s3.<region>.amazonaws.com. Бакет встаёт в имя хоста: https://<bucket>.s3.<region>.amazonaws.com.Регион бакета, например eu-central-1.
Cloudflare R2Адрес S3 API со страницы R2: https://<account-id>.r2.cloudflarestorage.com.auto
Backblaze B2https://s3.<region>.backblazeb2.comРегион из адреса бакета, например eu-central-003.
Wasabihttps://s3.<region>.wasabisys.comРегион бакета, например eu-central-1.
DigitalOcean Spaceshttps://<region>.digitaloceanspaces.comДата-центр, например fra1.
Google Cloud Storagehttps://storage.googleapis.com с HMAC-ключом сервисного аккаунта.auto
Другое S3-совместимое хранилищеHTTPS-адрес его S3 API: MinIO, Hetzner, Scaleway, OVH, IDrive e2 и другие.Регион, для которого оно подписывает; us-east-1, если он не указан.

Что вызывает агент

Инструменты бакета оканчиваются на _read и _write. В их описании агент читает, как смотреть список, читать, записывать и удалять, и ему не приходится гадать. Путь пишется полностью, как в S3: во всех хранилищах, кроме Amazon S3, он начинается с бакета.

JSON · список объектов в notes/ (инструмент _read)
{
  "method": "GET",
  "path": "/reports/",
  "params": { "list-type": "2", "prefix": "notes/" }
}
JSON · запись объекта (инструмент _write)
{
  "method": "PUT",
  "path": "/reports/notes/2026-09-30.md",
  "headers": { "Content-Type": "text/markdown", "x-amz-meta-author": "agent" },
  "body": "# Weekly notes",
  "intent": "Сохранить заметки недели"
}

Чтение: GET /reports/notes/2026-09-30.md. Копия: PUT с заголовком x-amz-copy-source: /reports/notes/2026-09-30.md. Удаление: DELETE /reports/notes/2026-09-30.md. Ответы приходят в XML самого S3.

Какие вызовы ждут вас

ВызовКласс
GET и HEAD: список, скачивание, метаданные объектаЧтение
PUT и POST: загрузка, копия, загрузка частямиИзменение
POST ?delete, который удаляет много объектов сразуИзменение
DELETEНеобратимое

Имя объекта класс не меняет: чтение builds/run.log остаётся чтением. Пока вы не решили иначе, вызовы идут без вопросов; правила задаются в списке «Доступ» у агента. Подробнее на странице Подтверждения.

Большие и двоичные файлы

Инструменты MCP передают текст: CSV, JSON, логи, Markdown. Файлы любого вида отправляйте байтами через HTTP-прокси с токеном агента. Путь после /p/<connection-id> задаёт ключ объекта внутри бакета.

Shell · загрузка и скачивание через прокси
export SP_AGENT_TOKEN='<agent-token>'

curl --fail-with-body -X PUT \
  -H "Authorization: Bearer $SP_AGENT_TOKEN" \
  -H 'Content-Type: application/pdf' \
  -H 'X-Sallyport-Intent: Store the signed contract' \
  --data-binary @contract.pdf \
  "https://mcp.sallyport.cloud/p/<connection-id>/contracts/2026/acme.pdf"

curl --fail-with-body -H "Authorization: Bearer $SP_AGENT_TOKEN" \
  -o acme.pdf "https://mcp.sallyport.cloud/p/<connection-id>/contracts/2026/acme.pdf"

Одна загрузка через прокси вмещает до 32 МиБ, одно скачивание до 512 МиБ. Файл больше загружайте частями (multipart upload).