mirror of
https://github.com/pgsty/minio.git
synced 2026-07-21 05:00:22 +03:00
Adding IsTruncated to minioapi
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user