Skip to content

Commit

Permalink
normalize
Browse files Browse the repository at this point in the history
  • Loading branch information
sinkuu committed May 12, 2020
1 parent 813a66b commit 9c4769d
Showing 1 changed file with 15 additions and 15 deletions.
30 changes: 15 additions & 15 deletions swift.go
Expand Up @@ -4,6 +4,7 @@ import (
"archive/tar"
"bytes"
"fmt"
"strings"

swift "github.com/ncw/swift"

Expand Down Expand Up @@ -41,8 +42,12 @@ func NewSwiftDatastore(conf Config) (*SwiftContainer, error) {
}, nil
}

func keyToName(k ds.Key) string {
return strings.TrimPrefix(k.String(), "/")
}

func (s *SwiftContainer) Get(k ds.Key) ([]byte, error) {
data, err := s.conn.ObjectGetBytes(s.Container, k.String())
data, err := s.conn.ObjectGetBytes(s.Container, keyToName(k))
switch err {
case nil:
return data, nil
Expand All @@ -54,15 +59,15 @@ func (s *SwiftContainer) Get(k ds.Key) ([]byte, error) {
}

func (s *SwiftContainer) Delete(k ds.Key) error {
return s.conn.ObjectDelete(s.Container, k.String())
return s.conn.ObjectDelete(s.Container, keyToName(k))
}

func (s *SwiftContainer) Put(k ds.Key, val []byte) error {
return s.conn.ObjectPutBytes(s.Container, k.String(), val, "application/octet-stream")
return s.conn.ObjectPutBytes(s.Container, keyToName(k), val, "application/octet-stream")
}

func (s *SwiftContainer) Has(k ds.Key) (bool, error) {
_, _, err := s.conn.Object(s.Container, k.String())
_, _, err := s.conn.Object(s.Container, keyToName(k))
switch err {
case nil:
return true, nil
Expand All @@ -79,7 +84,7 @@ func (s *SwiftContainer) GetSize(k ds.Key) (int, error) {

func (s *SwiftContainer) Query(q dsq.Query) (dsq.Results, error) {
opts := swift.ObjectsOpts{
Prefix: q.Prefix,
Prefix: strings.TrimPrefix(q.Prefix, "/"),
Limit: q.Limit + q.Offset,
}

Expand All @@ -94,7 +99,7 @@ func (s *SwiftContainer) Query(q dsq.Query) (dsq.Results, error) {

res := make([]dsq.Entry, len(objs[q.Offset:]))
for i, obj := range objs[q.Offset:] {
res[i] = dsq.Entry{Key: obj.Name}
res[i] = dsq.Entry{Key: "/" + obj.Name}
}

return dsq.ResultsFromIterator(q, dsq.Iterator{
Expand All @@ -114,7 +119,7 @@ func (s *SwiftContainer) Query(q dsq.Query) (dsq.Results, error) {
return dsq.Result{Entry: obj}, true
}

b, err := s.conn.ObjectGetBytes(s.Container, obj.Key)
b, err := s.conn.ObjectGetBytes(s.Container, strings.TrimPrefix(obj.Key, "/"))
if err != nil {
return dsq.Result{Error: err}, false
}
Expand All @@ -133,16 +138,11 @@ func (s *SwiftContainer) Close() error {

func (s *SwiftContainer) Batch() (ds.Batch, error) {
putData := new(bytes.Buffer)
tarWriter := tar.NewWriter(putData)
tarWriter.WriteHeader(&tar.Header{
Name: "/",
Size: 0,
})

return &swiftBatch{
s: s,
putData: putData,
tarWriter: tarWriter,
tarWriter: tar.NewWriter(putData),
delKeys: nil,
}, nil
}
Expand All @@ -158,7 +158,7 @@ type swiftBatch struct {
func (b *swiftBatch) Put(k ds.Key, val []byte) error {
header := tar.Header{
Typeflag: tar.TypeReg,
Name: k.String(),
Name: keyToName(k),
Size: int64(len(val)),
}

Expand All @@ -172,7 +172,7 @@ func (b *swiftBatch) Put(k ds.Key, val []byte) error {
}

func (b *swiftBatch) Delete(k ds.Key) error {
b.delKeys = append(b.delKeys, k.String())
b.delKeys = append(b.delKeys, keyToName(k))
return nil
}

Expand Down

0 comments on commit 9c4769d

Please sign in to comment.