よくよく考えたら当然のことだが、multipart では PUT できない。
Faraday.new(url: s3_url).put do |req|
req.header['Content-Type'] = 'application/octet-stream'
req.body = File.binread('/path/to/file')
end
Content-Type
は PUT するバイナリの Content Type に合わせる。
セキュアな bucket に PUT したい場合、Authorization
ヘッダがさらに必要になる。