2011-08-17 4 views
1

У меня есть приложение rails 3, в котором я использую «лицо» для ссылки на API Face.com. Метод api принимает параметр:Конвертировать содержимое загружаемого файла в двоичный файл без сохранения (Rails)

:file => File.new(path_to_file, 'rb') 

который работает.

Я пытаюсь изменить поток приложения, так что файл можно загрузить через форму, выполнить некоторую работу с RMagick, а затем сделать вызов API, без сохранения файла на диск.

я могу генерировать RMagick «Image» с

image = Magick::Image.from_blob(upload_image_field.read) 

Затем я могу управлять файлом с RMagick и даже сохранять результаты в базу данных с:

self.data = image.to_blob #normally 'upload_image_field.read' if not using RMagick 

Моя проблема в том, что я не может изменить файл изображения (или blob) на то, что распознает API (не сохраняя его на диске, а затем ссылаясь на файл на диске).

Например, используя это в методе API не удается:

:file => image.to_blob 

Как преобразовать он BLOb в том же формате, как

File.new(path_to_file, 'rb') 

Благодарности

ответ

1

Хорошо, я мог бы быть неправильно на этом ... но я хотел это выкопать. К сожалению, вам просто нужно сохранить его как файл. Причина в том, что API делает HTTP POST. К сожалению, это должен быть файл.

Ссылки from: [https://github.com/rociiu/face/tree/master/lib/face]:

recognition.rb:

def faces_detect(opts={}) 
    opts.assert_valid_keys(:urls, :file, :detector, :attributes, :callback, :callback_url) 
    make_request(:faces_detect, opts) 
end 

utils.rb:

def make_request(api_method, opts={}) 
    .... 
    response = JSON.parse(RestClient.post(API_METHODS[ api_method ], opts.merge(api_crendential)).body) 
    .... 
    end 

Итак, почему это проблема для сохранения в файл затем?

+0

Я пытался устранить дополнительную запись на жесткий диск. – CHsurfer

+0

Я понял. Не могли бы вы написать на ramdrive для повышения производительности? –

+0

Честно говоря, я понятия не имею. Мне, вероятно, было бы проще свернуть мой собственный Face.com api, который сделает это с данными о постах. – CHsurfer

Смежные вопросы