GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Como receber um arquivo via rest no Server-side?

java
rest
json
webservice
Tags: #<Tag:0x00007f37d99d7908> #<Tag:0x00007f37d99d77c8> #<Tag:0x00007f37d99d7688> #<Tag:0x00007f37d99d7548>

#1

Bom dia, boa tarde ou boa noite… :grin:

Pessoal estou com uma certa dificuldade em ler um arquivo vindo via rest para o lado servidor, para ser mais específico, estou recebendo, por meio de JSON, um arquivo .zip, então, gostaria de saber como faço para ler esse arquivo em tempo de execução, descompactá-lo em memória (não quero gravar em disco), para então poder processá-lo.

Algumas das pesquisas que fiz (inclusive aqui no GUJ) não me ajudaram.

OBS: O arquivo .zip nada mais é que um arquivo .txt compactado, que devo descompactar do lado do servidor para obter um texto claro (text/plain) para ler e processar.


#2

Está mandando arquivo dentro de um json, tem realmente essa necessidade ou seria por moda de usar json pra tudo? É mais fácil e apropriado receber diretamente o binário em uma requisiçao sem overhead do formato json para este caso. Tendo os bytes diretamente você usa alguma lib pra dezipar em memoria. Ai fica fácil encontrar solução pesquisando por exemplo: zip unzip bytes memory java.


#3

application/octet-stream + custom headers são bem mais eficientes pra isso…

Pode não ser aquela delícia pra montar objetos, mas é bem mais gerenciável e elegante ( existe uma pseudo garantia nisso também )… Fora que Binário dentro de JSON dá uma treta gostosa com encode e é um saco de resolver.

Pode parecer lindo em teoria, tentei usar algo parecido uma vez, por experiencia própria foge Bino que é cilada! Se for continuar, boa sorte!


#4

O mais comum para upload de arquivos eh uso multipart. Quanto a não fazer a descompactação do arquivo acho que não deveria ser um problema se vc fizer na pasta temporária do sistema operacional.