Хранилище S3
Подключите бакет Amazon S3, Cloudflare R2, Backblaze B2, Wasabi, DigitalOcean Spaces, Google Cloud Storage или любого S3-совместимого хранилища. Агенты смотрят, читают, записывают и удаляют объекты; секретный ключ остаётся у Sallyport.
Агент называет объект. Sallyport подписывает запрос AWS Signature V4, отправляет его в ваш бакет и возвращает ответ. Ключ доступа и его секрет агент не видит.
Подключите бакет
- Откройте Добавить ключ сервиса и выберите «Хранилище S3» в поле «Источник ключа».
- Выберите «Хранилище». «Регион» и «Адрес хранилища» заполнятся сами; если поменять «Регион», адрес поменяется следом.
- Введите «Бакет». Агенты работают с этим бакетом и больше ни с чем в хранилище.
- Создайте в хранилище ключ, которому доступен только этот бакет, и вставьте «Идентификатор ключа доступа» и «Секретный ключ доступа».
- «Название подключения» совпадает с именем бакета, пока вы его не измените. Выберите «Рабочее пространство» и «Среду».
- Нажмите «Сохранить и проверить ключ». Sallyport запечатает ключ, создаст подключение и прочитает с ним один объект из списка бакета.
Результат виден на странице ключа в блоке «Куда ведёт ключ». Неверный секрет отклоняется там же, словами самого хранилища, раньше, чем его попробует агент. Бакетом сразу могут пользоваться все агенты рабочего пространства.
| Хранилище | Адрес хранилища | Регион |
|---|---|---|
| Amazon S3 | https://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 B2 | https://s3.<region>.backblazeb2.com | Регион из адреса бакета, например eu-central-003. |
| Wasabi | https://s3.<region>.wasabisys.com | Регион бакета, например eu-central-1. |
| DigitalOcean Spaces | https://<region>.digitaloceanspaces.com | Дата-центр, например fra1. |
| Google Cloud Storage | https://storage.googleapis.com с HMAC-ключом сервисного аккаунта. | auto |
| Другое S3-совместимое хранилище | HTTPS-адрес его S3 API: MinIO, Hetzner, Scaleway, OVH, IDrive e2 и другие. | Регион, для которого оно подписывает; us-east-1, если он не указан. |
Что вызывает агент
Инструменты бакета оканчиваются на _read и _write. В их описании агент читает, как смотреть список, читать, записывать и удалять, и ему не приходится гадать. Путь пишется полностью, как в S3: во всех хранилищах, кроме Amazon S3, он начинается с бакета.
{
"method": "GET",
"path": "/reports/",
"params": { "list-type": "2", "prefix": "notes/" }
}{
"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> задаёт ключ объекта внутри бакета.
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).