Могу ли я сделать так, чтобы Sinatra / Rack не считывал все тело запроса в память?

Скажем, у меня есть маршрут Синатры аля:

put '/data' do
  request.body.read
  # ...
end

Похоже, что весь request.body читается в память. Есть ли способ потреблять тело, когда оно поступает в систему, вместо того, чтобы заранее хранить все это в Rack / Sinatra?

Я вижу, что могу сделать это, чтобы прочитать тело по частям, но кажется, что все тело заранее считывается в память.

put '/data' do
  while request.body.read(1024) != nil 
    # ...
  end
  # ...
end

Ответы на вопрос(1)

Ваш ответ на вопрос