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 とすれば良い。簡単。