go get github.com/chai2010/etcdfs
Start etcd in local:
etcd
Put some data to edcd:
ETCDCTL_API=3 etcdctl put /abc/readme.md abc/aaa-value
ETCDCTL_API=3 etcdctl put /abc/hello.go "package main; func main(){}"
ETCDCTL_API=3 etcdctl get --prefix ""
Create go progrom:
package main
import (
"flag"
"log"
"net/http"
"strings"
"time"
"golang.org/x/tools/godoc/vfs"
"golang.org/x/tools/godoc/vfs/httpfs"
"github.com/chai2010/etcdfs"
)
var (
flagEtcdHost = flag.String("ectd-host", "localhost:2379", "set etcd nodes")
)
func main() {
flag.Parse()
etcdClient, err := etcdfs.NewEtcdClient(strings.Split(*flagEtcdHost, ","), time.Second/10)
if err != nil {
log.Fatal(err)
}
ns := vfs.NameSpace{}
ns.Bind("/", etcdfs.New(etcdClient), "/", vfs.BindReplace)
http.Handle("/", http.FileServer(httpfs.New(ns)))
log.Fatal(http.ListenAndServe(":8080", nil))
}
Run the program (hello.go):
go run hello.go
Then open http://127.0.0.1:8080/ in browser.
Report bugs to [email protected].
Thanks!