Как прикрепить файл (например, curl -F file=@{path/to/file.csv} к Jitterbit HTTP POST Operation?

Как мне перевести следующую команду curl в операцию Jitterbit?

curl -i -u username:password -X POST -F file=@/path/to/file.csv 
https://website.com/api/filepost

В настоящее время моя операция структурирована следующим образом:

введите здесь описание изображения

  1. Скрипт:

    $jitterbit.target.http.form_data = истина; $jitterbit.target.http.form_data.filename = "file.csv"; $jitterbit.target.http.form_data.name = "файл";

  2. Источник Файл CSV без заголовков, соответствующий спецификациям API (тот же файл успешно отправлен через curl)

  3. Преобразование: текст в текст — и исходный, и целевой файлы используют тот же формат файла, что и исходный файл.

  4. Конечная точка API введите здесь описание изображения

В настоящее время я успешно аутентифицируюсь, но получаю сообщение об ошибке 400/Bad Request, в котором говорится: «Файл не прикреплен».

Полное сообщение об ошибке:

The operation "2. POST Preapplicants - CSV to API" failed.

Fatal Error
Failed to post to the url 'https://website.com/api/filepost’. 
The last (and probably most relevant) error was: The server 
returned HTTP Status Code : 400 Bad Request  Error is: The 
request could not be processed by the server due to invalid 
syntax. Headers sent by the server: HTTP/1.1 400 Bad Request 
Server: nginx/1.10.3 (Ubuntu) Content-Type: application/json 
Transfer-Encoding: chunked Connection: keep-alive Cache-Control: 
no-cache Date: Tue, 12 Sep 2017 18:55:38 GMT  The response was: 
{"message":"No file attached."}

person Brock Elgart    schedule 12.09.2017    source источник


Ответы (2)


Я решил эту проблему, выполнив следующие действия: 1. Перейдя от операции преобразования к операции архивирования (используя тот же источник, цель и сценарий) 2. Изменив тип содержимого моего HTTP-соединения на multipart/form-data ( тип содержимого по умолчанию, переданный curl)

person Brock Elgart    schedule 13.09.2017

Вы можете сделать это таким образом. то, что я сделал, это использовать операцию со списком файлов, сохраненную в массиве, а затем использовать функцию Base64EncodeFile() для загрузки файла.

person Tdubs    schedule 14.01.2021