отправьте base64 закодированное изображение с помощью завихрения

Я пытаюсь отправить base64 закодированное изображение от использования командной строки curl и base64 как это:

curl -X POST -H "Content-Type: application/json" -d '{"image" : $( base64 ~/Pictures/1.jpg )}' http://some/url/  

Однако я получаю ответ, назад говоря это $ неожиданный маркер. Как я отправляю base64 закодированное изображение?

8
задан 19 July 2015 в 19:30

2 ответа

Bash не расширяется в одинарных кавычках. '{"image" : $( base64 ~/Pictures/1.jpg )}' отправляется как есть. Вместо этого попробуйте:

'{"image" : "'"$( base64 ~/Pictures/1.jpg)"'"}'

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

5
ответ дан 16 November 2019 в 06:44

@muru корректен, однако при попытке отправить , json, кодирующий Ваши base64 данные, может быть слишком большим для командной строки, и можно предпочесть что-то вроде этого:

(echo -n '{"image": "'; base64 ~/Pictures/1.jpg; echo '"}') |
curl -H "Content-Type: application/json" -d @-  http://some/url/ 

Эти -X POST подразумевается -d.

20
ответ дан 16 November 2019 в 06:44

Другие вопросы по тегам:

Похожие вопросы: