FTPでのデータ取得方法とは?

このQ&Aのポイント
  • FTPでパスワードとユーザ名を指定してバイナリデータ(LZH圧縮のデータ)を取得する方法について教えてください。
  • FTPでデータを取得するためのコード例を示します。パスワードとユーザ名はどこにどのように入れればいいのか教えてください。
  • 時間がないので、調査せずに質問します。FTPを使用してパスワードとユーザ名を指定してバイナリデータを取得する方法を教えてください。
回答を見る
  • ベストアンサー

FTPでのデータ取得

パスワードとユーザ名を指定してのFTPでのバイナリデータ (LZH圧縮のデータ)の取得はどのようなコードを書けばいいのでしょうか。 例えば require "open-uri" open("ftp://172.11.155.123/dir/data.LZH"){|io| open("data.LZH" , "w"){|f| f.write(io.read) } } このような場合、パスワード(abcde)とユーザ名(yamada)は、どこに、どのように、いれればいいのでしょうか。 上記のような書き方でなくても構いません。 時間がないので、あまり調べず質問することをお許しください。

  • Ruby
  • 回答数2
  • ありがとう数7

質問者が選んだベストアンサー

  • ベストアンサー
noname#149362
noname#149362
回答No.1

open-uri ではなく net/ftp を使う方が簡単かと思うのですが、いかがでしょうか。(参考 URL)

参考URL:
http://doc.okkez.net/static/187/method/Net=3a=3aFTP/s/open.html

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4845/10255)
回答No.2

require "open-uri" open("ftp://yamada:abcde@172.11.155.123/dir/data.LZH"){|io| open("data.LZH" , "w"){|f| f.write(io.read) } } これはRubyの仕様というより、URLの書式の話です。ブラウザでも使えますよ。

関連するQ&A

  • FTPでデータを送信したいのです!

    お客さんに「FTPでデータを送信してください。」と、サーバー名、ユーザ名、パスワードが送られてきました。 どのようにしたらいいのか分かりません。 環境は、MacOS X 10.3.9 です。 良いアドヴァイスをお願いします。

  • perlでFTP

    ローカルPCからPerlで記述されたプログラムを実行し、 FTPサーバーへファイルをアップロードするPerlプログラムを教えてください。 DOS上では、 ftp open ftpサーバー名 ユーザー名 パスワード put 送信するファイル bye となるのですが、それをPerlで記述すると、どのようになるのでしょうか?

    • ベストアンサー
    • Perl
  • RubyでバイナリデータをIOストリームにする方法

    Rubyで、バイナリデータをIOストリームに変換する方法を探しています。 Railsで、データベースに格納された アップロード済のPDFファイル(バイナリデータ)を、 PDF::readで読み込んで処理したいのですが、 PDF::readは、ファイルパスかIOストリームしか受け付けてくれないようなのです。 よろしくお願いします。

  • FTP情報について

    「ジャックと豆の木」や「SEO MASTER」の登録をするとき、FTP情報を入力するとこがありますが、FTPユーザー名とFTPパスワードはどーすればわかりますか? 当方はFTPユーザー名とFTPパスワードを知りません。 プロバイダと契約したとき、もらった書類には ID・ログインパスワード・メールアドレス・メールパスワード・メールサーバー・ユーザー名(アカウント名)しか記載されていません。 普通、IPアドレスやホスト名も何かに記載されてるものですか?

  • FTPによるファイル取得について

    一定の間隔であるサーバに接続し、画像ファイルを取得するプログラムを作成しています。 C言語で作成されたプログラムより、以下のようなシェルを実行し、画像ファイルを取得することを考えています。 ----------------------------- #!/bin/sh ftp -in <<EOL open 接続先IPアドレス user ユーザ名 パスワード lcd ローカルのディレクトリ cd リモートのディレクトリ mget data[ABC]_${d}.tar.gz quit EOL ----------------------------- ここで、以下のような問題に悩んでいます。 1.上記シェルを実行し、まさにFTPを行っているとき、LAN断などにより遠隔サーバとの接続が切れたときに、だんまり状態となってしまう。 2.FTPが成功した場合、取得したファイルの正当性が保証されるのか?せめてファイルサイズチェックだけでも行いたいが、FTP実行前にファイルのサイズが取得できるか?

  • FTPサーバ FTPユーザ FTPパスワード

    質問です。 ID for weblifeを使用しています。 lolipopと契約しているのですが、ID for weblifeの入力画面で、FTPサーバ名、FTPユーザ名、FTPパスワード、サーバーディレクトリを入力する画面があるのですが、FTPサーバ名、FTPパスワードはlolipopで調べることが出来ましたが、ユーザ名をどうして見るのか解りません。 また、サーバーディレクトリも解りません。 どうしたらいいのか詳しい方教えて頂きたいです。ホームページがアップロード出来なくて困っています。 あまり詳しくないので、解りやすく教えて頂けたら幸いです。 宜しくお願い致します。

  • FTPソフトについて(2)

    FTPサーバーについてはわかったんですが、 ユーザ名「アカウント名」「ID」等と書いてある部分を入力します。 パスワード「パスワード」と書いてある部分を入力します。* で表示されます。 というところでユーザー名にはヤフーJAPANID、 パスワードにはそのIDのパスワードを入力するようになってるんですが、入力しても「正しいをパスワード入力してください」 と出てFTPソフトのホストがログインできません。 なぜなのでしょうか。

  • ftpの素朴な疑問

    あるftpサーバーがあるとします。 (例えば) そのftpサーバーのIPアドレス...xxx.xxx.xxx.xxx ftpの共有フォルダー名;foldername ユーザー名:username パスワード:password とします。 ftpにアクセスするソフトはFFFTP,IE,などとします。 ==さて質問。ftpのシステム管理者はこんなことできるのでしょうか?== Q1) FFFTPなどからアクセスする際、 「フォルダー名のパスまでちゃんと入力しなくても、IPアドレス、ユーザー名、パスワードさえ入力したら、ちゃんとfoldernameにたどり着ける」という設定にできるのでしょうか? 具体的には、"ftp://username:password@xxx.xxx.xxx.xxx/"と入力したのに、ちゃんとftp://xxx.xxx.xxx.xxx/foldernameに入れる。) Q2)逆に「フォルダー名のパスまでちゃんと入力しない限り、foldernameにたどり着けない」という設定にできるのでしょうか? 具体的にはパス名がftp://xxx.xxx.xxx.xxx/foldernameじゃない限り、ユーザー名、パスワードを入力画面すら現れない) Q3)コマンドプロンプトでftp> open xxx.xxx.xxx.xxxでタイムアウトなのに、ftp> open xxx.xxx.xxx.xxx/foldernameだとアクセスできる! ということはありえるのでしょうか? 質問多くてすみませんが、教えて下さいませ。

  • FTPのFTPサーバー名について質問です。

    FTPのFTPサーバー名について質問です。 すみませんがかなり初歩的な質問かと思いますがよろしくお願いします。 SEO対策のためのとあるツールの設定画面で、FTP情報を入力するところがあります。 ・ホスト名 ・ユーザー名 ・パスワード これら上記の3つがよく分かりません。検索もしてみたのですがイマイチです。 ユーザー名、パスワードというのはブロバイダからもらっている会員証のものでOKなのでしょうか?ただ、会員証のどこを探してもホスト名やFTPについての記載がないのですが これは問い合わせしなければ分からないものなのでしょうか? ブロバイダはビックローブです。 どうかご存知の方いましたらよろしくお願いします。

  • ftpコマンド出力結果の取得

    ftpコマンドのバッチ処理によってファイルの一覧の結果を取得したいのですが、 リダイレクション等を用いても取得できません。 どのようにすればいいか教えてください。 **************状況************* OSおよびOSレベル:AIX5.2 シェル:Kシェル コマンドファイルの中身(ftp.txt) cat << EOF | ftp -n open SERVER user USER PW cd PATH ls -l bye EOF SERVER:実際のサーバー名 USER:実際のユーザー名 PW:実際のパスワード PATH:実際のパス これを以下のように実行し、結果を取得しようとしました。 # ./cmd.ftp > log しかし、出力ファイルlogの中身はカラっぽでした。 ところが、リダイレクションを外し、コマンドファイルのみを実行すると、結果が画面に表示されます。 何故、画面には表示されるのに、リダイレクションやパイプでは結果が渡されないのかが分かりません。

専門家に質問してみよう