This repository was archived by the owner on Jul 10, 2022. It is now read-only.
File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 66install :
77 - go get github.com/stretchr/testify
88 - go get github.com/tus/tusd
9+ - go get github.com/syndtr/goleveldb/leveldb
910script : go test -v ./...
1011notifications :
1112 email :
Original file line number Diff line number Diff line change @@ -50,6 +50,7 @@ Store is used to map an upload's fingerprint with the corresponding upload URL.
5050| Name | Backend | Dependencies |
5151| :----:| :-------:| :------------:|
5252| MemoryStore | In-Memory | None |
53+ | LeveldbStore | LevelDB | [ goleveldb] ( https://github.com/syndtr/goleveldb ) |
5354
5455## Future Work
5556
Original file line number Diff line number Diff line change 1+ package leveldbstore
2+
3+ import (
4+ "github.com/eventials/go-tus"
5+ "github.com/syndtr/goleveldb/leveldb"
6+ )
7+
8+ type LeveldbStore struct {
9+ db * leveldb.DB
10+ }
11+
12+ func NewLeveldbStore (path string ) (tus.Store , error ) {
13+ db , err := leveldb .OpenFile (path , nil )
14+ if err != nil {
15+ return nil , err
16+ }
17+
18+ store := & LeveldbStore {db : db }
19+ return store , err
20+ }
21+
22+ func (s * LeveldbStore ) Get (fingerprint string ) (string , bool ) {
23+ url , err := s .db .Get ([]byte (fingerprint ), nil )
24+ ok := true
25+ if err != nil {
26+ ok = false
27+ }
28+ return string (url ), ok
29+ }
30+
31+ func (s * LeveldbStore ) Set (fingerprint , url string ) {
32+ s .db .Put ([]byte (fingerprint ), []byte (url ), nil )
33+ }
34+
35+ func (s * LeveldbStore ) Delete (fingerprint string ) {
36+ s .db .Delete ([]byte (fingerprint ), nil )
37+ }
38+
39+ func (s * LeveldbStore ) Close () {
40+ s .Close ()
41+ }
You can’t perform that action at this time.
0 commit comments