Правильная команда curl для загрузки локального файла по url - PullRequest
2 голосов
/ 01 августа 2020

Привет, я использую cURL для загрузки файла PDF на удаленный сервер методом POST. Перепробовал несколько вариантов, получил несколько разных сообщений (ошибок), два наиболее значимых:

curl -X POST https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' "@C:\Users\Slomil\Desktop\UserGuide.pdf" 

с ошибкой curl: (3) Port number ended with '\'. Кроме того, я попытался изменить адрес на '/', чтобы новая команда curl выглядела как

curl -X POST https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' "@C:/Users/Slomil/Desktop/UserGuide.pdf"

и получила ошибку curl: (1) Protocol "@C" not supported or disabled in libcurl.
Я также ищу предыдущие ответы об этом на stackoverflow, и попытался использовать эту справку в качестве моей новой команды cURL, но тоже безуспешно.
Может кто-нибудь знает, в чем может быть проблема? Думал, что у меня адрес к файлу неправильный .. но не знаю как еще его записать в команде .. Тут поменял только адреса с "\" на "/", думая что адрес проблема, может быть, в этих косых чертах .. Большое спасибо! :)

1 Ответ

3 голосов
/ 01 августа 2020

Существует несколько способов «загрузить файл по URL-адресу», поэтому мы не сможем узнать об этом, пока вы не предоставите нам более подробную информацию.

Но ясно то, что вам не хватает либо -d, либо -F в командной строке, и вы должны удалить -X POST.

Multi-part formpost

Если вы загружаете с использованием multipart, именно так работает большинство «загрузок» в HTTP , это может быть что-то вроде этого:

curl https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -F "file=@C:\Users\Slomil\Desktop\UserGuide.pdf"

Обратите внимание, что эта командная строка устанавливает часть загрузки для получения имени file , которое вы должны изменить на желаемое имя.

«обычный» POST

Если вы просто хотите отправить двоичный файл «необработанным» в POST (что может указывать ваш параметр Content-Type), используйте --data-binary, например это:

curl https://waapi.pepipost.com/api/v2/media/upload/ -H 'Authorization: Bearer myAuthorizationToken' -H 'Content-Type: document' --data-binary "@C:\Users\Slomil\Desktop\UserGuide.pdf"

(Я скопировал Content-Type из вопроса, хотя это выглядит необычно и странно.)

...