mirror of
https://github.com/minio/minio.git
synced 2025-11-24 19:46:16 -05:00
Donut cleanup another set
- Make sure to close all readers - Fix errors in api_testsuite c.Assert(err, IsNil) should be done right after each function call
This commit is contained in:
@@ -117,10 +117,6 @@ func (b bucket) ListObjects(prefix, marker, delimiter string, maxkeys int) ([]st
|
||||
return nil, nil, false, iodine.New(err, nil)
|
||||
}
|
||||
for _, file := range files {
|
||||
if len(objects) >= maxkeys {
|
||||
isTruncated = true
|
||||
goto truncated
|
||||
}
|
||||
objectName, err := b.getObjectName(file.Name(), disk.GetPath(), bucketPath)
|
||||
if err != nil {
|
||||
return nil, nil, false, iodine.New(err, nil)
|
||||
@@ -134,8 +130,6 @@ func (b bucket) ListObjects(prefix, marker, delimiter string, maxkeys int) ([]st
|
||||
}
|
||||
nodeSlice = nodeSlice + 1
|
||||
}
|
||||
|
||||
truncated:
|
||||
{
|
||||
if strings.TrimSpace(prefix) != "" {
|
||||
objects = removePrefix(objects, prefix)
|
||||
@@ -150,10 +144,15 @@ truncated:
|
||||
} else {
|
||||
filteredObjects = objects
|
||||
}
|
||||
|
||||
var results []string
|
||||
var commonPrefixes []string
|
||||
|
||||
sort.Strings(filteredObjects)
|
||||
for _, objectName := range filteredObjects {
|
||||
if len(results) >= maxkeys {
|
||||
isTruncated = true
|
||||
break
|
||||
}
|
||||
results = appendUniq(results, prefix+objectName)
|
||||
}
|
||||
for _, commonPrefix := range prefixes {
|
||||
@@ -418,6 +417,9 @@ func (b bucket) readEncodedData(objectName string, writer *io.PipeWriter, donutO
|
||||
writer.CloseWithError(iodine.New(err, nil))
|
||||
return
|
||||
}
|
||||
for _, reader := range readers {
|
||||
defer reader.Close()
|
||||
}
|
||||
hasher := md5.New()
|
||||
mwriter := io.MultiWriter(writer, hasher)
|
||||
switch len(readers) == 1 {
|
||||
|
||||
@@ -93,6 +93,7 @@ func (disk Disk) ListDir(dirname string) ([]os.FileInfo, error) {
|
||||
if err != nil {
|
||||
return nil, iodine.New(err, nil)
|
||||
}
|
||||
defer dir.Close()
|
||||
contents, err := dir.Readdir(-1)
|
||||
if err != nil {
|
||||
return nil, iodine.New(err, nil)
|
||||
@@ -113,6 +114,7 @@ func (disk Disk) ListFiles(dirname string) ([]os.FileInfo, error) {
|
||||
if err != nil {
|
||||
return nil, iodine.New(err, nil)
|
||||
}
|
||||
defer dir.Close()
|
||||
contents, err := dir.Readdir(-1)
|
||||
if err != nil {
|
||||
return nil, iodine.New(err, nil)
|
||||
|
||||
@@ -192,7 +192,7 @@ func (dt donut) PutObject(bucket, object, expectedMD5Sum string, reader io.ReadC
|
||||
if _, ok := dt.buckets[bucket]; !ok {
|
||||
return "", iodine.New(BucketNotFound{Bucket: bucket}, nil)
|
||||
}
|
||||
objectList, _, _, err := dt.buckets[bucket].ListObjects(object, "", "", 1)
|
||||
objectList, _, _, err := dt.buckets[bucket].ListObjects("", "", "", 1000)
|
||||
if err != nil {
|
||||
return "", iodine.New(err, nil)
|
||||
}
|
||||
@@ -245,7 +245,12 @@ func (dt donut) GetObjectMetadata(bucket, object string) (map[string]string, err
|
||||
if _, ok := dt.buckets[bucket]; !ok {
|
||||
return nil, iodine.New(BucketNotFound{Bucket: bucket}, errParams)
|
||||
}
|
||||
objectList, _, _, err := dt.buckets[bucket].ListObjects(object, "", "", 1)
|
||||
//
|
||||
// there is a potential issue here, if the object comes after the truncated list
|
||||
// below GetObjectMetadata would fail as ObjectNotFound{}
|
||||
//
|
||||
// will fix it when we bring in persistent json into Donut - TODO
|
||||
objectList, _, _, err := dt.buckets[bucket].ListObjects("", "", "", 1000)
|
||||
if err != nil {
|
||||
return nil, iodine.New(err, errParams)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user