Curl изменяет параметр пути multipart/form-data

Я пытаюсь отправить некоторые данные multipart/form-data с помощью curl в оболочке msys на NAS с именем Synology. Данные формы нуждаются в параметре с именем «путь» и должны быть отформатированы как «/dir/dir2». Косые черты нельзя изменить.
Моя проблема в том, что когда я использую curl, переменная пути будет изменена на «C:/git-sdk-64/dir/dir2», и я не знаю, как предотвратить Это. Моя команда выглядит так:

curl -X POST \
  'http://url:port/webapi/entry.cgi?_sid=secret&api=SYNO.FileStation.Upload&method=upload&version=2' \
  -F "path=/dir/dir2" \
  -F 'overwrite=true' \
  -F 'filename=@/c/Temp/test.txt'

person FleMo    schedule 07.03.2019    source источник
comment
curl не меняет путь, это делает что-то другое. Возможно, вы используете msys? Известно, что они делают такие вещи, когда пытаются быть полезными.   -  person Daniel Stenberg    schedule 07.03.2019
comment
Ok. Это хорошая информация, с которой я могу начать. Я новичок в этом мире bash и shell. И я должен использовать msys. Ничего другого я не могу использовать.   -  person FleMo    schedule 07.03.2019
comment
См. также stackoverflow.com/questions/44700461/   -  person Daniel Stenberg    schedule 07.03.2019


Ответы (1)


Благодаря информации Даниэля Стенберга я узнал, что это "проблема" с msys self. Msys заполняет переменную пути. Записано здесь http://www.mingw.org/wiki/Posix_path_conversion. Решение состоит в том, чтобы поставить точку с запятой в конце пути. Полная команда теперь выглядит так:

curl -X POST \
  'http://url:port/webapi/entry.cgi?_sid=secret&api=SYNO.FileStation.Upload&method=upload&version=2' \
  -F "path=/dir/dir2;" \
  -F 'overwrite=true' \
  -F 'filename=@/c/Temp/test.txt'
person FleMo    schedule 07.03.2019