分享 有没有快速建立 HTTP 服务器进行文件共享的方法?

jiang_plus · 2013年04月21日 · 最后由 googya 回复于 2013年04月23日 · 5271 次阅读

Python有一个 python -m SimpleHTTPServer 8080 ,可以用来在一个文件夹建立一个基于HTTP的文件服务器,相信这个技巧很多人都已经知道了

想问问Ruby有没有相同的用法?

共收到 12 条回复

来个golang的

go run filename.go

package main

    import (
        "fmt"
        "net/http"
        "os"
    )

    func main(){

        fileServer := http.FileServer(http.Dir("./"))
        err := http.ListenAndServe(":3000", fileServer)

        if err != nil {
            fmt.Println("some error", err.Error())
            os.Exit(1)
        }
    }

Python

$ python -m SimpleHTTPServer
http://localhost:8000/

PHP(~> 5.4)

$ php -S localhost:8000
http://localhost:8000/

Ruby

$ gem install white_castle
$ white_castle .
http://localhost:3000/

Rack 里面自带了一个中间件,所以可以这样 在目录下新建 config.ru

# encoding: UTF-8
#\ -w -p 80
require 'rack/mime'
use Rack::ContentLength

app = Rack::Directory.new Dir.pwd
run app

然后到目录下执行 rackup 不过这个对中文支持有点问题

#2楼 @krazy 觉得这个方案最好用,能不能让white_castle用thin等其它server,默认的webrick太恶心了

@jiang_plus
静态文件这个区别很大吗 https://github.com/nodanaonlyzuul/white_castle/blob/master/lib/white_castle.rb 这个代码挺简单的...三楼哪个也挺好的..

在home目录建一个config.ru。然后切换到任意目录:

rackup ~/config.ru

即可,觉得烦就建个alias http://rubyer.me/blog/2012/12/12/ruby-simple-http-server-with-rack/

ruby一行流 rackup -b "run Rack::Directory.new '.'" 。

#7楼 @googya 试过了 貌似没有-b选项 -e也不行 没有run方法,必须写成一个文件用rackup去跑。

#9楼 @iBachue 不会吧。。

@iBachue 那估计是rack的版本的问题了

~ $ rackup -v Rack 1.2 (Release: 1.5)

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册