Загрузка файла gemini

Поддержка
  • Кто то может подсказать, как выполнить в басе этот запрос на отправку пдф файла в ИИ используя стандартный кубик с пост запросом, а не через node js:

    #Upload the actual bytes.
    curl "${upload_url}"
    -H "Content-Length: ${NUM_BYTES}"
    -H "X-Goog-Upload-Offset: 0"
    -H "X-Goog-Upload-Command: upload, finalize"
    --data-binary "@${AUDIO_PATH}" 2> /dev/null > file_info.json

    То есть заголовки H я понимаю куда сувать, а что за фрукт --data-binary, в какое поле у баса файл то грузить

  • В AUDIO_PATH что у вас будет?

  • Ответ ChatGPT:

    Коротко: --data-binary в curl = «отправь сырые байты файла в тело запроса (НЕ multipart)».
    В BAS это делается стандартным HTTP Request с телом «из файла» в бинарном виде.

    Вот пошагово, без Node.js:
    Посчитать размер файла (Content-Length)
    Блок: File → Get File Size
    Путь: [[PDF_PATH]] (или ваш путь)
    В переменную: [[NUM_BYTES]]
    HTTP-запрос (сырые байты)
    Блок: HTTP Client → Request
    URL: [[UPLOAD_URL]]
    Method: POST
    Follow redirects: выключить (обычно лучше OFF на подобных аплоадах)

    Headers:
    Content-Length: [[NUM_BYTES]]
    X-Goog-Upload-Offset: 0
    X-Goog-Upload-Command: upload, finalize
    (рекомендую) Content-Type: application/octet-stream
    Если API требует другой тип — поставьте его.

    Body / Тело запроса:
    Тип: Raw / Binary (в BAS это «Body from file» / «Request body from file», без multipart)
    Путь к файлу: [[PDF_PATH]]
    Никаких form-data и полей! Нужно именно «тело из файла».
    Сохранить ответ
    В настройках блока: «Save response to variable» → [[RESPONSE]]
    Если нужно прям как в file_info.json:
    Блок: File → Write File
    Путь: file_info.json
    Данные: [[RESPONSE]]

    Полезные заметки (чтоб не ловить серых глюков):
    Убедитесь, что BAS не включает chunked transfer (обычно он не включается, если задан Content-Length, но иногда есть галочка «Chunked» — она должна быть OFF).
    Путь C:...\file.pdf используйте обычный Windows-вид — BAS понимает; внутри JSON/строк экранируйте \ как \.
    Если сервер ругается на Content-Length, значит размер посчитан не тем файлом — проверьте, что [[NUM_BYTES]] взят именно у [[PDF_PATH]].

    Итого: «Body from file» (не multipart) = полный аналог --data-binary "@file.pdf".

  • @Ortiz poprobuy prochitat file pdf v FILE_CONTENT kak base64, a v http cliente, vibiraesh POST i v body pishesh:
    base64:[[FILE_CONTENT]]