Adding IsTruncated to minioapi

This commit is contained in:
Frederick F. Kautz IV
2015-01-25 13:32:39 -08:00
parent 39208601dc
commit d37bbfec41
5 changed files with 21 additions and 15 deletions
+5 -5
View File
@@ -86,20 +86,20 @@ func (storage *storage) StoreBucket(bucketName string) error {
return nil
}
func (storage *storage) ListObjects(bucket, prefix string, count int) []mstorage.ObjectMetadata {
func (storage *storage) ListObjects(bucket, prefix string, count int) ([]mstorage.ObjectMetadata, bool) {
// TODO prefix and count handling
var results []mstorage.ObjectMetadata
for key, object := range storage.objectdata {
if len(results) == count {
return results, true
}
if bucket == object.metadata.Bucket {
if strings.HasPrefix(key, bucket+":") {
results = append(results, object.metadata)
}
}
if len(results) == count {
return results
}
}
return results
return results, false
}
func (storage *storage) ListBuckets(prefix string) []mstorage.BucketMetadata {
+1 -1
View File
@@ -31,7 +31,7 @@ type Storage interface {
GetObjectMetadata(bucket string, object string) (ObjectMetadata, error)
CopyObjectToWriter(w io.Writer, bucket string, object string) (int64, error)
StoreObject(bucket string, key string, data io.Reader) error
ListObjects(bucket, prefix string, count int) []ObjectMetadata
ListObjects(bucket, prefix string, count int) ([]ObjectMetadata, bool)
}
type BucketMetadata struct {
+9 -3
View File
@@ -61,16 +61,22 @@ func testPaging(c *C, create func() Storage) {
storage := create()
storage.StoreBucket("bucket")
storage.ListObjects("bucket", "", 1000)
c.Assert(len(storage.ListObjects("bucket", "", 1000)), Equals, 0)
objects, isTruncated := storage.ListObjects("bucket", "", 1000)
c.Assert(len(objects), Equals, 0)
c.Assert(isTruncated, Equals, false)
for i := 1; i <= 1000; i++ {
key := "obj" + strconv.Itoa(i)
storage.StoreObject("bucket", key, bytes.NewBufferString(key))
c.Assert(len(storage.ListObjects("bucket", "", i)), Equals, i)
objects, isTruncated = storage.ListObjects("bucket", "", 1000)
c.Assert(len(objects), Equals, i)
c.Assert(isTruncated, Equals, false)
}
for i := 1001; i <= 2000; i++ {
key := "obj" + strconv.Itoa(i)
storage.StoreObject("bucket", key, bytes.NewBufferString(key))
c.Assert(len(storage.ListObjects("bucket", "", 1000)), Equals, 1000)
objects, isTruncated = storage.ListObjects("bucket", "", 1000)
c.Assert(len(objects), Equals, 1000)
c.Assert(isTruncated, Equals, true)
}
}