💨

Tips: Axios でバイナリデータを扱う

1 min read

Express で、仕方なく Axios を使って外部ストレージAPIをリバースプロキシする必要が出たのですが、地味に詰まってしまったのでメモ

コード

export async function proxyHandler(req, res) {
  const externalResponse = await axios.get<WriteStream>(url, {
    responseType: 'stream'
  });

  if(externalResponse.status === 200) {
    Object.entries(externalResponse.headers).map(([key, value]) =>
      res.setHeader(key, value);
    );
    externalResponse.data.pipe(res);
  }
}

responseType: 'stream' とすると pipe できるのがミソ

Discussion

ログインするとコメントできます