VRaptor4: upload big file (maior que um 1gb)

Estou tentando subir um arquivo de 1.2GB usando a seguinte assinatura:

@UploadSizeLimit(sizeLimit = 10 * 1024 * 1024 * 1024, fileSizeLimit = 100 * 1024 * 1024 * 1024)
@Post("/file/uploadScan")
public void uploadScanFileSend(UploadedFile uploadZipScan) throws Exception {
...
}

Ele começa a subir, mas de repente ele mostra uma mensagem dizendo: “Não é possível carregar esse site”.

Alguém sabe como resolver isso?

[]'s

Ola

Salvo engano, esse metodo vai tentar carregar o arquivo todo em memoria.

isso vai te dar dois problemas:

  1. vai consumir 1.2 Gb de ram no minimo
  2. vai demorar e pode rolar algum timeout

eu nao sou especialista em Vraptor4, consulte a documentação se existem boas praticas com o upload de arquivo.

uma coisa que vc poderia considerar é pegar o stream de bytes do request http e salvar o arquivo enquanto vc recebe o post. pra isso vc vai ter que lidar com HTTP e saber parsear um multipart/form-data

eu fiz um codigo parecido com isso em Scala anos atras (que lembra java, logo vc pode se aventurar pelo codigo)

pesquise por handleUpload


webapp.handleUpload(uuid,req.getContentLength, req.getContentType, req.getInputStream)

a logica esta nessa classe UplpipeMultipartRequestParser