Я попытался подключиться к другой системе через OpenBMC REST API, используя команду cURL для получения файла tar, но мне это не удалось. Мне не удалось извлечь данные после загрузки.
Вот краткое описание того, что я пробовал, и полученных отзывов.
std::string file_name = "test.tar.gz";
std::string curl_cmd = "curl -m 5 -k -X GET http://192.168.x.x/attachment";
std::string res = execCurl(curl_cmd.c_str());
asyncResp->res.addHeader("Content-Disposition", "attachment; filename=\"" + file_name + "\"");
asyncResp->res.addHeader("Content-Type", "application/octet-stream");
asyncResp->res.write(std::move(res));
Я могу успешно загрузить tar-файл по IP-пути и получить данные.
curl -k http://192.168.x.x/attachment >/tmp/tets.tar.gz
Однако при попытке загрузить его через REST API в Интернете произошла ошибка.
tar: This does not look like a tar archive
gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now
Подробнее здесь: https://stackoverflow.com/questions/784 ... rl-command