Curl을 사용하여 로컬에서 호스트로 모든 파일을 업로드하는 방법은 무엇입니까?

Curl을 사용하여 로컬에서 호스트로 모든 파일을 업로드하는 방법은 무엇입니까?

로컬에서 호스트로 특정 경로에 있는 다른 이름을 가진 모든 파일을 업로드하는 쉘 스크립트를 작성했지만 몇 가지 문제에 직면하여 파일이 업로드되지 않습니다.

#!/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/*

답변1

다음과 같이 스크립트를 변경하겠습니다.

#!/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(이전과 마찬가지로) 을 사용하여 업로드하는 것입니다.그래서 대답했다):

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

PS에 대한 추가 정보

어떤 문제로 인해 파일 업로드가 중단됩니다.

도움이 될 것입니다.

관련 정보