Как загрузить все файлы с локального на хост, используя Curl?


1

я написал сценарий оболочки для загрузки всех файлов с разными именами по определенному пути с локального на хост, но у меня возникла некоторая проблема, и файлы не загружаются

#!/bin/sh
for file in /main/folder1/path/*
do
curl -u Pass:"Uname" -T  $file http://www.example.com/folder/$file
done

пожалуйста, помогите мне решить это.

я получаю ошибку следующим образом

<html>
<head>
<title> 500 Internal Server Error </title>
</head>
<body>
<h1> 
Internal Server Error 
</h1> 
</body>
</html>

в настоящее время у меня есть сценарий внутри /main/folder_2, если я изменяю /main/folder_1/path/*на ../folder_1/path/*, я получил вывод, файлы перемещаются, как ожидалось. но я хочу запустить скрипт с указанием полного пути.


Вы используете fileкак var, а $iпотом, это опечатка?
Архемар

да, по ошибке я набрал '$ i', здесь только '$ file'
thamizhinian

Ответы:


3

Я бы изменил ваш скрипт так:

#!/bin/sh

for file in /folder/path/*
do
  curl -u username:password -T ${file} http://www.example.com/folder/${file}
done

Обратите внимание, что переменная for-loop fileиспользуется с curl.

Лучше всего загрузить с помощью find + curl(как было сказано на SO ):

find /folder/path/ -name '*' -type f -exec curl -u USERNAME:PASSWORD -T {} http://www.example.com/folder/ \;

PS Подробнее о

некоторая проблема останавливает загрузку файлов

было бы полезно.


привет чувак, спасибо за помощь, этот работал отлично.
thamizhinian

Я рад, что это помогло.
DIG mbl
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.