2009-03-12 8 views
0

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

Единственное решение, которое у меня есть, - это установить удаленный сервер с помощью плавкого предохранителя, а затем прочитать заголовок из файлов, как если бы они находились на моем локальном компьютере. Я пробовал, и он работает. Но у него есть некоторые недостатки. Специально с FTP:

  • Действительно медленный (FTP сопоставляется с SSH с curlftpfs). С того же сервера, файлы SSH 90 были прочитаны за 18 секунд. И с FTP 10 файлов за 39 секунд.
  • Не зависит. Иногда точка монтирования не размонтируется.
  • Если сервер активен и выполняется пассивный монтаж. Эта точка монтирования и родительская папка блокируются примерно через 3 минуты.
  • Выполняется тайм-аут, даже если происходит передача данных (предположим, что это протокол FTP, а не curlftpfs).

Предохранитель - это решение, но мне оно не очень нравится, потому что я не чувствую, что могу ему доверять. Поэтому мой вопрос в основном, если есть какие-либо другие решения проблемы. Язык предпочтительно Ruby, но любой другой будет работать, если Ruby не поддерживает решение.

Спасибо!

ответ

1

Какую информацию вы ищите?

Вы можете попробовать использовать модуль ruby ​​open-uri. Следующий пример из http://www.ruby-doc.org/stdlib/libdoc/open-uri/rdoc/index.html

require 'open-uri' 
open("http://www.ruby-lang.org/en") {|f| 
    p f.base_uri   # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/> 
    p f.content_type  # "text/html" 
    p f.charset   # "iso-8859-1" 
    p f.content_encoding # [] 
    p f.last_modified # Thu Dec 05 02:45:02 UTC 2002 
} 

EDIT: Кажется, что оп хочет получить информацию ID3 тегов из удаленных файлов. Это сложнее.

От wiki: Это сложная проблема.

На вики: расположение

тегов в файле

только со стандартом ID3v2.4 имеет это было возможно поместить данные тегов в конец файла, вместе с ID3v1. ID3v2.2 и 2.3 требуют, чтобы данные тега предшествовали файлу. В то время как для потоковой передачи данных это абсолютно , для статических данных это означает , что весь аудиофайл должен быть обновлен для вставки данных в начало файла. Для начальной маркировки этот несет большой штраф, так как каждый файл должен быть переписан. Tag сценаристы рекомендуется вводить отступы после данных тегов для того, чтобы обеспечить правок к данным тегов без , требующих всего звукового файл, чтобы быть переписано, но они не являются стандартными и требование тегов может различаться очень, особенно если APIC (связанные изображения) также встроенный.

Это означает, что в зависимости от версии файла тега ID3 вам может потребоваться прочитать разные части файла.

Вот статья, которая описывает основы чтения ID3 тегов, используя рубин для ID3tagv1.1 но должен сервер в качестве хорошей отправной точки: http://rubyquiz.com/quiz136.html

Вы также можете посмотреть в использовании синтаксического анализа библиотеки ID3, такие как id3.rb или id3lib-ruby; однако я не уверен, поддерживает ли он возможность анализировать удаленный файл (скорее всего, это может произойти с некоторыми изменениями).

+0

Я хочу получить информацию о тегах для музыкальных файлов. Например, ID3. Очевидно, Open-uri не смог дать мне такую ​​информацию. – rejeep

+0

См. Мое редактирование для получения дополнительной информации. :) – nan