예제 #1
0
파일: main.go 프로젝트: rwcarlsen/cas
func testFile() {
	db, err := blobdb.New(dbpath)
	if err != nil {
		fmt.Println(err)
		return
	}

	meta := blob.NewMeta()
	blobs, err := meta.LoadFromPath(testfilepath)
	if err != nil {
		fmt.Println(err)
		return
	}

	err = db.Put(blobs...)
	if err != nil {
		fmt.Println(err)
		return
	}

	m, _ := blob.Marshal(meta)
	err = db.Put(m)
	if err != nil {
		fmt.Println(err)
		return
	}

	for _, b := range blobs {
		fmt.Println(b)
	}
}
예제 #2
0
파일: server.go 프로젝트: rwcarlsen/cas
func configServ(addr, dbPath string) *Server {
	db, _ := blobdb.New(dbPath)
	tInd := timeindex.New()
	oInd := objindex.New()
	for b := range db.Walk() {
		tInd.Notify(b)
		oInd.Notify(b)
	}
	sort.Sort(tInd)
	oInd.Sort()

	serv := defaultHttpServer()
	serv.Addr = addr
	bs := &Server{Db: db, Serv: serv}
	bs.AddIndex("time", tInd)
	bs.AddIndex("object", oInd)
	return bs
}
예제 #3
0
파일: server.go 프로젝트: rwcarlsen/cas
func (bs *Server) prepareListen() {
	if bs.inds == nil {
		bs.inds = make(map[string]index.Index, 0)
	}

	if bs.Db == nil {
		bs.Db, _ = blobdb.New(DefaultDb)
	}

	if bs.Serv == nil {
		bs.Serv = defaultHttpServer()
	}

	http.Handle("/", &defHandler{})
	http.Handle("/ref/", auth.Handler{&getHandler{bs: bs}})
	http.Handle("/put/", auth.Handler{&putHandler{bs: bs}})
	http.Handle("/index/", auth.Handler{&indexHandler{bs: bs}})
}
예제 #4
0
파일: main.go 프로젝트: rwcarlsen/cas
func testRaw() {
	db, err := blobdb.New(dbpath)
	if err != nil {
		fmt.Println(err)
		return
	}

	b := blob.NewRaw([]byte("hello monkey man"))
	err = db.Put(b)
	if err != nil {
		fmt.Println(err)
		return
	}

	b2, err := db.Get(b.Ref())
	if err != nil {
		fmt.Println(err)
		return
	}

	fmt.Println(b)
	fmt.Println(b2)
}
예제 #5
0
파일: main.go 프로젝트: rwcarlsen/cas
func testDir() {
	db, _ := blobdb.New(dbpath)

	metas, blobs, err := blob.DirBlobsAndMeta(testdirpath)
	if err != nil {
		fmt.Println(err)
		return
	}

	metablobs := make([]*blob.Blob, 0)
	for _, meta := range metas {
		obj := blob.NewObject()
		meta.RcasObjectRef = obj.Ref()
		m, _ := blob.Marshal(meta)
		metablobs = append(metablobs, m, obj)
	}

	err = db.Put(metablobs...)
	if err != nil {
		fmt.Println(err)
		return
	}

	err = db.Put(blobs...)
	if err != nil {
		fmt.Println(err)
		return
	}

	for _, b := range metablobs {
		fmt.Println(b)
	}
	for _, b := range blobs {
		fmt.Println(b)
	}
}