Scala Play Framework后端EC2部署后/uploadImage接口返回404但本地运行正常的问题求助
Scala Play Framework后端EC2部署后/uploadImage接口返回404但本地运行正常的问题求助
大家好,我最近在开发一个基于Scala + Play Framework的Web应用后端,核心功能是处理图片上传:把图片传到AWS S3,同时把图片元数据存储到AWS RDS实例里。
本地运行的时候一切正常,但部署到EC2实例后,第一个端点GET /能正常访问,可是第二个处理图片上传的POST /uploadImage接口却返回404 Not Found,实在搞不懂哪里出问题了,想请教下大家。
先给大家说下项目的基本情况:
- 我用
dist命令打包应用部署到EC2 - 当前有两个端点:
GET / controllers.HomeController.index() + nocsrf POST /uploadImage controllers.StoreImageController.uploadImage()
下面是我的关键配置文件application.conf内容:
play.http.secret.key="**************" play.filters.hosts { allowed = ["."] } db { driver = "org.postgresql.Driver" host = "jdbc:postgresql://xxxxx:5432/hellodb" username = "postgres" password = "xxxxxx" } play.http.parser.maxDiskBuffer = 100MB parsers.anyContent.maxLength = 100MB
还有处理上传的StoreImageController代码:
@Singleton class StoreImageController @Inject() ( controllerComponents: ControllerComponents, imageDao: ImageDao ) extends AbstractController(controllerComponents) { val BUCKETNAME = "lovilovasz-images" def uploadImage() = Action(parse.multipartFormData) { request => request.body .file("picture") .map { picture => val filename = picture.filename val fileSize = picture.fileSize.toFloat val contentType = picture.contentType.getOrElse("Unknown") val imageMetadata = ImageMetadata( UUID.randomUUID(), filename, fileSize, contentType, DateTime.now().toString ) imageDao.insertImageMetadata(imageMetadata) uploadToS3(picture) Ok("File uploaded") } .getOrElse { BadRequest("File can't be uploaded.") } } }
实际与预期行为
- EC2上实际行为:
GET /正常访问,POST /uploadImage返回404 - 预期行为:两个端点都能正常工作
想问问大家,为什么本地运行没问题,部署到EC2就出现这个404的情况呢?麻烦帮忙分析下可能的原因,谢谢!
备注:内容来源于stack exchange,提问作者Lovasz Kristof
相关产品推荐
相关产品推荐

