Я пытаюсь написать на своем сервере (Мой сервер) сценарий 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, пока я разобрался с этим концом. Не уверен, влияет ли это на что-либо.