@Ortiz Вы на общем форуме просите помощи. Выпендрёж по знанию тут неуместен.
Выходит, если просите помощи, то вам далеко до нормально знающего.
Загрузка файла 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, в какое поле у баса файл то грузить
-
Ответ 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".