У меня есть метод веб-сервиса, который читает фотографию и возвращает ее байтовые данные. В настоящее время я делаю следующее:
@photo_bytes = IO.read("/path/to/file")
send_data(@photo_bytes, :filename => "filename", :type => "filetype", :disposition => "inline")
У меня странное поведение, когда я так много называю ... иногда send_data возвращает ноль. Я думаю, что, возможно, я получаю утверждение о прочтении, если файл еще не был закрыт. Нужно ли явно закрывать файл после открытия его с помощью IO.read? Как я могу использовать read_nonblock для этого и стоит ли это того?
UPDATE:
Итак, я сделал еще несколько записей, и иногда IO.read возвращает значение, например, 1800 байт, когда оно обычно возвращает ~ 5800 байт для изображения. Когда он возвращает 1800 байт, изображение не отображается на клиенте. Это происходит довольно случайно, когда два пользователя вызывают веб-сервис.
Спасибо
Tom