티스토리 뷰

반응형

curl 을 사용해 로컬에 있는 파일을 업로드하기 위해서는 다음과 같이 --upload-file(-T) 옵션을 사용하면 된다.

curl --upload-file {file path}

 

그런데 위에서 전달받은 파일을 fetch API를 사용해 다른 API의 body로 전달하려고하면 해당 파일의 타입이 ReadableStream이라 실제 파일의 타입으로 내용이 전달되지 않는다.

 

ReadableStream을 원하는 타입으로 전달하기 위해선 다음과 같이 처리하면 된다.

const response = new Response(data as ReadableStream); // stream으로 Response 객체 생성
const text = await response.text();

fetch(url, {
  method: 'post',
  // stream이 javascript 파일이라면 Content-Type 헤더를 설정해주면 된다.
  // headers: {
  //   'Content-Type': 'application/javascript',
  // },
  body: text,
});

 

반응형
댓글