Content Lengthで調整
Yesodで、デカいファイルをアップロードすると、エラーが発生する
POST /list/0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Status: 413 Too Large 0.000029971s
ファイルのアップロードサイズというか、ContentLengthの調整で対応
設定ファイルからサイズを取れるようにする
* config/settings.ymlに追加
# Content Length Max MB max-byte: 50
* src/Settings.hs
data AppSettings = AppSettings ... , appMaxByte :: Word64 -- ^ Content Length Max MB ...
FromJSONのインスタンス設定も修正
instance FromJSON AppSettings where parseJSON = withObject "AppSettings" $ \o -> do let defaultDev = ... ... appMaxByte <- o .: "max-byte" ..
maximumContentLength関数を実装する
設定を取得してその値を元に、ContentLengthの上限を設定する
instance Yesod App where ... ... -- Content Length Max maximumContentLength app _ = do let size = appMaxByte $ appSettings app return $ size * 1024 * 1024 -- MB ...
これでデカいのがあがるようになる
0 件のコメント:
コメントを投稿