передача файла с одного удаленного сервера на другой удаленный сервер без загрузки файла - PullRequest
0 голосов
/ 04 мая 2020

Я пытаюсь написать на своем сервере (Мой сервер) сценарий Bash, который будет извлекать файл с одного удаленного сервера (Источник) и копировать его в учетную запись Dropbox (Назначение). Мне нужно получить файл из источника через SFTP и буду копировать его в пункт назначения с помощью API Dropbox (HTTPS). Пока что я могу получить файл с помощью:

curl  -k "sftp://Source/file.txt" --user "me:mypasswd" -o "/test/file.txt" --ftp-create-dirs 

и затем скопировать его в Dropbox с помощью

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

Я предполагаю, что «правильный» способ сделать это - передать файл из источника напрямую в пункт назначения, но я просто не знаю, как go собрать их вместе.

Это определенно не моя область знаний, поэтому я даже не знаю, с чего начать - вложенные вызовы CURL? Если бы кто-нибудь мог указать мне правильное направление, я был бы очень благодарен.


ОБНОВЛЕНИЕ
Вот вся команда curl, которую я выполняю:

curl -X POST https://content.dropboxapi.com/2/files/upload \
    --header "Authorization: Bearer $token" \
    --header "Dropbox-API-Arg: {\"path\": \"/xfer/chef.txt\",\"mode\": \"add\",\"autorename\": true,\"mute\": false,\"strict_conflict\": false}" \
    --header "Content-Type: application/octet-stream" \
    --data-binary "$(curl  -k "http://marketing.dave0112.com/file.txt" --user "me:mypasswd")"

У меня были проблемы с CURL, не поддерживающим SFTP, поэтому Я изменил на HTTP, пока я разобрался с этим концом. Не уверен, влияет ли это на что-либо.

1 Ответ

1 голос
/ 04 мая 2020

Вы можете заменить эту строку:

--data-binary @/test/file.txt

на

--data-binary @<(curl  -k "sftp://Source/file.txt" --user "me:mypasswd")

Если возникли проблемы, попробуйте:

--data-binary "$(curl  -k "sftp://Source/file.txt" --user "me:mypasswd")"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...