トップ «前の日(09-11) 最新 次の日(09-13)» 追記   RSS 1.0 FEED  

Journal InTime


2006-09-12 (Tue)

_ www.ruby-lang.orgのリニューアル

をしました。

<URL:http://www.ruby-lang.org/>

Tags: Ruby
本日のツッコミ(全2件) [ツッコミを入れる]

_ takahashim [おつかれさま! 今はさくさく見れてます!]

_ shugo [一時期非常に重くなってたようです。すみません。 おかしいところがあったら直してください:)]


2015-09-12 (Sat)

_ Net::FTP#mlst, mlsdの追加

RFC 3659で追加されたMLST/MLSD(機械処理用のリストコマンド)を実装してみた。 trunkでは以下のようなコードが動くはず。

ftp = Net::FTP.new
ftp.connect("localhost")
ftp.login
p ftp.mlst("welcome.msg")
#=> #<struct Net::FTP::MLSxEntry facts={"modify"=>2013-12-20 18:07:33 UTC, "perm"=>"adfr", "size"=>170, "type"=>"file", "unique"=>"FC00U1E554B", "unix.group"=>"0", "unix.mode"=>"0644", "unix.owner"=>"122"}, pathname="/welcome.msg">
p ftp.mlsd("/")
#=> [#<struct Net::FTP::MLSxEntry facts={"modify"=>2015-09-12 03:59:29 UTC, "perm"=>"flcdmpe", "type"=>"cdir", "unique"=>"FC00U1E554A", "unix.group"=>"65534", "unix.mode"=>"0755", "unix.owner"=>"122"}, pathname=".">, #<struct Net::FTP::MLSxEntry facts={"modify"=>2013-12-20 18:07:33 UTC, "perm"=>"adfr", "size"=>170, "type"=>"file", "unique"=>"FC00U1E554B", "unix.group"=>"0", "unix.mode"=>"0644", "unix.owner"=>"122"}, pathname="welcome.msg">, #<struct Net::FTP::MLSxEntry facts={"modify"=>2015-09-12 03:59:29 UTC, "perm"=>"flcdmpe", "type"=>"pdir", "unique"=>"FC00U1E554A", "unix.group"=>"65534", "unix.mode"=>"0755", "unix.owner"=>"122"}, pathname="..">]

LISTと違ってサーバから返される情報が環境に依存しないので幸せになれるはずだったけど、試してみると以下のような問題があった。

  • そもそもvsftpdでサポートされてない。例えばftp.ruby-lang.orgでは使えない。
  • ProFTPDのMLSTレスポンスの2行目はなぜか250-で始まる(RFC 3659では空白で始まるように規定されているのに)。
  • システム依存のfact(sizeなどのファイル属性)はIANAに登録されることになっているが、 IANAのサイトのOS Specific Fact Namesを見ると、Unix.ctimeとUnix.atimeしか登録されていない。 RFC 3659の例にあるUnix.modeさえ登録されてないのはどうなの?

まあ、そういう自分も2007年に出たRFCの実装を今ごろしているわけだけど。

Tags: Ruby