Posso fazer com que o Sinatra / Rack não leia todo o corpo da solicitação na memória?
Digamos que eu tenho uma rota Sinatra ala:
put '/data' do
request.body.read
# ...
end
Parece que todo o request.body é lido na memória. Existe uma maneira de consumir o corpo à medida que ele entra no sistema, em vez de ter tudo armazenado em buffer no Rack / Sinatra antes?
Vejo que posso fazer isso para ler o corpo em partes, mas o corpo inteiro ainda parece ser lido na memória de antemão.
put '/data' do
while request.body.read(1024) != nil
# ...
end
# ...
end