Curl - Argument list too long

Ваше предположение неверно. Также не имеет для применения сети каким-либо конкретным образом.

VMware выполняет мосты по умолчанию (это «сеть виртуальных машин»), потому что это система, ориентированная на людей, которые запускают несколько виртуальных машин на группе серверов и (в основном) точно знают, что они делают с сетью.

NAT VirtualBox по умолчанию, потому что он предназначен для людей, которые запускают один (или несколько) серверов на настольном ПК и довольно часто мало или совсем ничего не знают о сети.

Я запускаю пару виртуальных машин на VirtualBox, которые используют NAT и мост. (Мост находится в сети, предназначенной только для хоста, поэтому я могу легко добраться до них с моего хоста. NAT обеспечивает легкий доступ серверов к Интернету.)

1
13.04.2017, 15:36
2 ответа

Проблема решена.

Я попробовал, как показано ниже, все получилось...

var1=$(curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d @test.json)
echo $var1
2
27.01.2020, 23:25

В системах с /dev/fd/x вы также можете сделать:

var1=$(
  curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' -d @/dev/fd/3 3<< EOF
 { "data" : "$(base64 sample.pdf | tr -d '\n')" }
EOF
)

В зависимости от реализации оболочки данные сохраняются во временном файле или через трубу.

С помощью zsh или bash вы также можете сделать следующее:

var1=$(
  curl -XPUT 'http://localhost:9200/my_index5/my_type/my_id?pipeline=attachment&pretty' \
    -d @<(
      printf ' { "data": "'
      base64 sample.pdf | tr -d '\n'
      printf ' }\n'
    )
)

Это было бы немного эффективнее, а также работало бы для команд, выводящих двоичные данные.

1
27.01.2020, 23:25

Теги

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