0

現在、リモート サーバー上のファイルからヘッダー データを読み取る必要があるプロジェクトに取り組んでいます。私は多くの大きなファイルについて話しているので、ファイル全体を読むことはできませんが、必要なヘッダーデータだけを読むことができます。

私が持っている唯一の解決策は、リモートサーバーをヒューズでマウントし、ファイルからヘッダーをローカルコンピューターのどこにあるかのように読み取ることです。私はそれを試してみましたが、うまくいきます。しかし、それにはいくつかの欠点があります。特に FTP の場合:

  • 本当に遅いです (FTP は curlftpfs を使用した SSH と比較されます)。同じサーバーから、SSH で 90 個のファイルが 18 秒で読み取られました。また、FTP を使用すると、39 秒で 10 個のファイルを処理できます。
  • 頼りない。マウントポイントがアンマウントされないことがあります。
  • サーバーがアクティブで、パッシブ マウントが行われている場合。そのマウントポイントと親フォルダーは約 3 分でロックされます。
  • データ転送が行われている場合でも、タイムアウトします (これは curlftpfs ではなく FTP プロトコルであると推測します)。

Fuseは解決策ですが、信頼できるとは思えないのであまり好きではありません。したがって、私の質問は基本的に、問題に対する他の解決策があるかどうかです。言語は Ruby が望ましいですが、Ruby がソリューションをサポートしていない場合は、他の言語でも問題ありません。

ありがとう!

4

3 に答える 3

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
}

編集: op がリモート ファイルから ID3 タグ情報を取得したかったようです。これはより複雑です。

ウィキより: これは難しい問題のようです。

ウィキで:

ファイル内のタグの場所

ID3v1と同様にタグデータをファイルの最後に配置できるのはID3v2.4規格のみです。ID3v2.2 および 2.3 では、ファイルの前にタグ データが必要です。ストリーミング データの場合、これは絶対に必要ですが、静的データの場合、オーディオ ファイル全体を更新して、ファイルの先頭にデータを挿入する必要があります。最初のタグ付けでは、すべてのファイルを再書き込みする必要があるため、大きなペナルティが発生します。タグ作成者は、オーディオ ファイル全体を書き直さなくてもタグ データを編集できるように、タグ データの後にパディングを導入することをお勧めしますが、これらは標準ではなく、特に APIC (関連写真)も埋め込まれています。

つまり、ファイルの ID3 タグのバージョンによっては、ファイルのさまざまな部分を読み取る必要がある場合があります。

これは、ID3tagv1.1 の ruby​​ を使用して ID3 タグを読み取る基本を概説する記事ですが、良い出発点として提供する必要があります: http://rubyquiz.com/quiz136.html

id3.rbid3lib-rubyなどの ID3 解析ライブラリの使用を検討することもできます。ただし、どちらもリモート ファイルを解析する機能をサポートしているかどうかはわかりません (ほとんどの場合、いくつかの変更により可能です)。

于 2009-03-12T20:48:47.647 に答える