Amazon S3 без кода: файлы, временные ссылки и бакеты

Amazon S3 без кода в nana800: блок загружает, скачивает и удаляет файлы, выдаёт временные ссылки и создаёт бакеты, то есть хранилища для файлов. Кроме Amazon он работает с Яндекс Объектным хранилищем, Cloudflare R2, MinIO и другими S3-совместимыми хранилищами, а для подключения нужны ключ доступа и имя бакета. Каждая операция стоит 0,20 ₽, а баланс каждый месяц бесплатно пополняется до 350 ₽.

Собрать в конструкторе
  • Запуск блока: 0,20 ₽
  • Бесплатно каждый месяц: 350 ₽
  • Карта не нужна

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

  • Сохранять в бакет файлы из предыдущих блоков: текст, base64 или ссылку вида data:
  • Скачивать файлы до 10 МБ в base64 и передавать их дальше по схеме
  • Выдавать временную ссылку на файл сроком от 1 секунды до 7 дней, по умолчанию на 1 час
  • Получать список файлов с фильтром по началу пути, например reports/2026/, до 1000 за запрос
  • Удалять файлы, создавать бакеты, удалять пустые бакеты и получать список всех бакетов
  • Открывать файл всем по ссылке правом public-read, если хранилище поддерживает права доступа к файлам (ACL)

Блоки в конструкторе

  • Файлы в S3-хранилище

    Действие · 0,20 ₽ за запуск

    Восемь операций: upload_file, download_file, delete_file, list_files, get_file_url, create_bucket, delete_bucket и list_buckets. Хранилище выбирается из списка: aws, yandex_object_storage, cloudflare_r2, minio или custom_url.

Как настроить

  1. 1

    Создайте ключ доступа

    В Amazon создайте ключ доступа (Access Key ID и Secret Access Key) с правами на нужный бакет. В Яндекс Облаке ключ создаётся у сервисного аккаунта в разделе «Статические ключи доступа», в Cloudflare R2 - в «Manage API tokens». Секретную часть показывают один раз, сохраните её.

  2. 2

    Добавьте блок «AWS S3 Request»

    Создайте схему, поставьте триггер «button» и добавьте блок «AWS S3 Request». В поле «Хранилище» выберите своё. Для Amazon укажите регион, например eu-central-1. Для Яндекса адрес и регион подставятся сами, для R2 и MinIO впишите адрес хранилища.

  3. 3

    Вставьте ключи и проверьте доступ

    Заполните Access Key ID, Secret Access Key и имя бакета. Для первой проверки выберите операцию list_files, включите схему и нажмите кнопку в триггере: блок покажет, какие файлы уже лежат в бакете.

  4. 4

    Настройте загрузку файла

    Выберите upload_file. В поле «Путь к файлу в бакете» впишите, например, reports/2026/january.pdf, а в «Содержимое файла» подставьте текст или base64 из предыдущего блока. Для картинки или PDF в base64 укажите тип файла, например application/pdf, или выберите формат base64.

  5. 5

    Проверьте загрузку и оставьте схему включённой

    Нажмите кнопку и откройте результат блока. При ошибке success будет false, а в error_message хранилище напишет причину, например что такого бакета нет. Когда всё работает, поставьте рабочий триггер и оставьте схему включённой.

Частые вопросы

Каждая операция блока стоит 0,20 ₽: загрузка, скачивание, список файлов или ссылка. Включённая схема стоит 0,42 ₽ в час. Баланс каждый месяц бесплатно пополняется до 350 ₽, карта не нужна. Если схема включена круглосуточно весь месяц, большая часть этой суммы уходит на часы работы схемы. За хранение файлов платите своему хранилищу по его тарифам.

Да. В поле «Хранилище» есть варианты aws, yandex_object_storage, cloudflare_r2, minio и custom_url для любого другого S3-совместимого хранилища. Сервер должен быть доступен из интернета: адреса внутренней сети и localhost блок не принимает.

Операция download_file отдаёт файл до 10 МБ в base64 в поле data. Для файлов больше используйте get_file_url: блок выдаст временную ссылку, по которой файл скачивается напрямую из хранилища.

Нет, этот блок принимает содержимое файла текстом, в base64 или ссылкой вида data:, а сам по адресу из интернета файл не скачивает. Файлы по обычной ссылке умеют сохранять блоки Google Drive и Yandex Disk.

Есть два способа. Выдать временную ссылку операцией get_file_url, она живёт от 1 секунды до 7 дней. Или загрузить файл с правом public-read, если хранилище поддерживает ACL: Cloudflare R2 и бакеты с отключёнными ACL этот вариант не принимают.

Откройте поле error_message: там код и текст ошибки хранилища, например NoSuchBucket, если бакета с таким именем нет. Частые причины: неверный регион, у ключа нет прав на эту операцию или удаляется бакет, в котором ещё есть файлы.

Соберите первую схему бесплатно

Регистрация бесплатная, карта не нужна. Каждый месяц баланс бесплатно пополняется до 350 ₽, этого хватает примерно на 3 500 запусков простых блоков.

Собрать в конструкторе