CURL 에서 파일 업로드 하기

2018-05-13

5월 13일 (수) TIL

작성한 API를 테스트 하기 위해서 Postman 이나 Paw를 주로 사용하는데, CURL을 사용해서 CLI에서 테스트해야 되는 경우도 종종 있다. 새롭게 API를 테스트 하던 중 CURL을 사용해서 파일 업로드 API를 테스트 하는 방법을 확인해 봤다.

기본 사용법

먼저 파일을 업로드 하는 request를 위해서는 multipart/form-data 형식으로 보내야 하는데 이를 위해서 사용할 CURL 옵션은 -F(--form) 이다. (대문자!!) 그리고 파일의 path를 지정해서 보내면 된다.

$ curl -F ‘file1=@/upload/file/path’ http://file.testApi.com

여러개 파일 전송

여러개의 파일을 보내야 하는 경우에는 -F 옵션을 연속해서 사용하면 된다.

$ curl -F ‘file1=@/upload/file1/path’ -F ‘file2=@/upload/file2/path’ http://file.testApi.com

파일변수가 배열인 경우

가끔씩 수신하는 서버의 파일파라미터가 배열연 경우도 있다 이 경우는 아래처럼 하면 된다.

$ curl -F ‘file[]=@/upload/file1/path’ -F ‘file[]=@/upload/file2/path’ http://file.testApi.com

다른 변수값 함께 전달

파일과 함께 다른 인자를 같이 넘겨줘야 되는 경우도 있는데 이럴 때는 path 형태가 아닌(@ 가 없는) 형태로 보내면 된다.

$ curl -F ‘file1=@/upload/file/path’ -F 'userId=1' -F 'title=test' http://file.testApi.com

filename 지정

파일인자말고, 원래의 파일이름을 명시하기를 원할 수도 있다.

$ curl -F ‘file1=@/upload/file/path;filename=Profile1.png’ http://file.testApi.com

참고 : https://medium.com/@petehouston/upload-files-with-curl-93064dcccc76


comments powered by Disqus