JavaScript
Node.js
micro
zeit

Micro でファイルアップロードできる micro-upload を使ってみる

ZEIT の Micro で、ファイルアップロードをしてみたら簡単だったので書いておきます。

express-upload のラッパーというライブラリを使います。 https://github.com/julianduque/micro-upload

yarn add micro micro-upload
yarn add -D micro-dev
index.js
const { upload } = require('micro-upload')

module.exports = upload(req => {
  req.files.file.mv('/tmp/file')
  return 'ok'
})

というファイルを用意して

yarn micro-dev

でサーバーを起動、そして

curl -XPOST -F file=@/path/to/image.jpg localhost:3000/files

などとすると、 /tmp/file にアップロードしたファイルが保存されます。

(ちなみに、これだけだと、どのURL、HTTPメソッドでもファイルアップロードされます)

S3 にアップロードするには、S3 の SDK を使う時、 req.files.file.data を Body とすれば良い。簡単。