#curl #gitlab
# #curl #gitlab
Вопрос:
Когда я пытаюсь отправить файл jar в gitlab с помощью команды curl post, я получаю ошибку 400 Bad request . Это происходит только для файлов Jar. Я могу успешно отправлять текстовые и json-файлы. Я использую приведенную ниже команду для публикации файлов.
curl -v --request POST
--header "PRIVATE-TOKEN:<token provided>"
--form "branch=develop"
--form "commit_message=<message provide>"
--form "action[][action]=create"
--form "action[][file_path]=<path provided>
--form "action[][content]=<app.jar"
"https://registry.com/api/v4/projects/111/repository/commits"
``
Please someone tell me what i'm missing here.
Thanks
Ответ №1:
Я смог ОПУБЛИКОВАТЬ двоичный файл в gitlab, закодировав файлы jar / war с использованием кодировки base64
base64 —wrap 0 app.jar > app.jar
И выполните приведенную выше команду.
Ответ №2:
Рассматривая возможные причины ошибки 400, потенциальной причиной вашей ошибки является слишком большой файл jar:
Возможно, клиент загружает слишком большой файл.
Большинство веб-серверов или приложений имеют явное ограничение размера файла, которое предотвращает загрузку слишком больших файлов и засорение полосы пропускания и других ресурсов на сервере. Во многих случаях сервер выдает ошибку 400 Bad Request, когда файл слишком большой (и, таким образом, запрос не может быть выполнен).
Проверьте это, попытавшись зафиксировать небольшой файл jar, и посмотрите, работает ли это в этом случае.
Комментарии:
1. Я пытаюсь использовать файл jar объемом 63 КБ. Но все равно это не работает
2. @raki1205 Затем, если размер действительно не является проблемой (я бы подтвердил это несколькими K jar, например, менее 10 тыс.), Проверьте, не является ли сеть проблемой, выполнив один и тот же запрос с разных рабочих станций.
3. Я пробовал с файлом 4K. Но все равно не повезло. Я попробовал текстовый файл размером 100 МБ, он работал нормально.