Чтение данных заголовка из файлов на удаленном сервере - PullRequest
0 голосов
/ 12 марта 2009

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

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

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

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

Спасибо!

1 Ответ

1 голос
/ 12 марта 2009

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

Вы можете попробовать использовать модуль 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
}

РЕДАКТИРОВАТЬ: Похоже, что оператору нужно получить информацию тега ID3 из удаленных файлов. Это сложнее.

из вики: Это кажется трудной проблемой.

В вики:

Местоположение тега в файле

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

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

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

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

...