akka-http 在上传时验证文件扩展名

问题描述

我需要根据允许的扩展名(例如 png、.pdf 等)的白名单验证上传文件,并检查扩展名是否与真实文件内容相对应,以避免恶意文件

目前文件上传是通过 fileUpload() 指令完成的,该指令解析文件元数据并将文件内容作为 Source[ByteString,Any] 提供,然后直接流式传输到 S3 存储:

def uploadFileRoute: Route =
    path("files") {
      post {
          (withSizeLimit(documentSizeLimit) &  fileUpload("file")) {
            case (fileInfo: FileInfo,contentSource: Source[ByteString,Any]) =>
              onSuccess(service.uploadToS3(fileInfo,contentSource)) {
                completeDefault(_)
              }
          }
      }
    }

如果可能,是否有关于如何执行此类验证并继续使用流式上传(例如,不要在本地存储整个文件)的好的解决方案?感谢任何代码示例!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)