Bash сценарий для l oop через удаленный каталог и файлы конвейера по 1 за раз для CURL - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь передать все файлы, находящиеся в указанном каталоге на Server1, на Server3 с помощью скрипта, запущенного на Server2.

Передача на Server3 должна происходить через API и, следовательно, должен использовать следующий вызов CURL :

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer $token" \
    --header "Dropbox-API-Arg: {\"path\": \"/xfer/$name\",\"mode\": \"add\",\"autorename\": true,\"mute\": false,\"strict_conflict\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @$f

Если это всего лишь 1 файл, я могу сделать это успешно, но я пытаюсь выполнить итерацию по каталогу на Server1 и отправить файл непосредственно на вызов CURL. Пока что у меня есть:

files="( $(ssh me@server1 ls dir/*) )"
while read f 
do
  name=$(basename ${f})
  curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer $token" \
    --header "Dropbox-API-Arg: {\"path\": \"/xfer/$name\",\"mode\": \"add\",\"autorename\": true,\"mute\": false,\"strict_conflict\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary @$f
done <<< "$files"

Кажется, что l oop читает "(" из массива файлов в первое имя файла, что, очевидно, вызывает проблему. Я не могу выйти за рамки этого, чтобы определить, действительно ли POSTING текущего файла в l oop через --data-binary будет делать то, что я думаю (или надеюсь).

Any ieas?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...