Я хочу загрузить файл tar.gz
с помощью curl
, и это команда, которую я попробовал с помощью cmd моего Windows (локально):
curl --user admin:admin --location "https://my_api/doxy_manual.tar.gz" --output doxy_manual.tar.gz
И это работает, поскольку я могу открыть файл, если дважды щелкну по нему.
К сожалению, если я вставлю ту же самую команду в свой Jenkinsfile
на работающий экземпляр Jenkins на сервере Windows:
pipeline {
agent any
stages {
stage('Hello') {
steps {
echo 'Hello World'
}
}
}
post {
always {
script {
bat """
curl --user admin:admin --location "https://my_api/doxy_manual.tar.gz" --output doxy_manual.tar.gz
"""
}
}
}
}
При двойном щелчке по загруженному файлу я получаю следующую ошибку:
7-zip: невозможно открыть файл «C:\Users\john\Downloads\doxy_manual.tar.gz» как архив [gzip]. Ошибка: не в архиве
Что мне не хватает?
Вероятно, вы захотите посмотреть HTTP Request Plugin
и использовать uploadFile
для POST-запроса. Лично я не вижу проблемы с curl
, только если вы хотите что-то сделать с ответом программно. В этом случае может оказаться полезным использование метода на основе DSL.
Я добавил флаг --verbose
к команде curl
I и понял, что curl
заменяет пробелы в моем URL-адресе на
0
вместо %20
, и поэтому я столкнулся с Error 404
вместо 200
Я отредактировал свое сообщение, добавив дополнительную информацию об ошибке. Пожалуйста, проверьте это