이와 같이:
고양이 tmp.txt | 컬 --postdomain.com/file-to-store
터미널만 사용하여 내 컴퓨터의 tmp.txt 내용을 서버에 저장하고 싶습니다. 가능합니까?
답변1
HTTP 프로토콜을 사용하여 서버에 파일을 업로드하거나 curl
명령줄에서 이를 수행할 수 있습니다.
하지만 이 기능이 작동하려면 파일 업로드를 지원하는 HTTP 서버가 필요합니다(로컬로 또는 해당 서버에서 실행되는 애플리케이션을 통해). 이 기능을 활성화하고 구성하려면 일반적으로 실수를 방지하기 위한 일종의 인증/권한 부여가 필요합니다. 귀하의 서버에 업로드됩니다. 웹 서버나 웹 애플리케이션이 업로드된 파일을 수신할 때 로컬 파일 시스템에 쓸 수 있도록 파일 및 디렉터리 권한을 처리해야 할 수도 있습니다.
모든 것이 준비되면 curl
HTTP를 사용하여 파일을 업로드하는 두 가지 방법이 있습니다.
- 배치 방법:
이는 파일 업로드를 위한 기본 "동사"입니다. 한 가지 장점은 업로드하는 데 사용하는 URL이 업로드된 후 업로드된 파일에 사용할 수 있는 URL과 일치한다는 것입니다. 그러나 위에서 언급한 것처럼 이 방법을 사용하여 파일을 업로드하는 것이 제대로 작동하려면 서버가 지원해야 합니다.
이것이 옵션인 경우 다음 구문을 사용하십시오.
cat tmp.txt | curl -T - domain.com/file-to-store
- 메일링 방법:
이는 파일 업로드를 구현할 수 있는 웹 서버에서 실행 중인 애플리케이션을 호출하는 방법입니다. 이 경우 애플리케이션 자체의 URL을 호출해야 하므로 일반적으로 예상되는 대상 URL을 지정해야 합니다. 또는 파일 이름은 다음과 같습니다. POST 요청에 전달된 별도의 매개변수("필드")로 인코딩됩니다.
이 접근 방식의 한 가지 장점은대개PUT 요청을 수락하도록 웹 서버를 구성하는 것보다 서버에 파일 업로드 응용 프로그램을 설치하고 구성하는 것이 더 쉽습니다(이 작업을 수행하기 위해 CGI 프로토콜을 사용하는 간단한 솔루션이 많이 있습니다).
옵션이 있는 경우 다음과 같은 구문을 사용하세요.
curl -F [email protected] -F url=/file-to-store domain.com/fileupload.cgi
위의 예는 문자 그대로가 아니며 가상의 파일 업로드 애플리케이션을 예시한 것일 뿐입니다. 실제 세부정보는 사용하기로 결정한 파일 업로드 애플리케이션에 따라 달라집니다. 이 예제의 목적은 컬의 -F
매개변수를 사용하는 방법과 @
이를 사용할 때 로컬 파일의 내용을 포함하는 방법을 설명하는 것입니다.
보다컬 매뉴얼자세한 내용은 특히 PUT 메서드를 설명하는 "업로드" 섹션을 참조하세요. 또한 POST를 옵션으로 사용한다고 언급합니다.