Merge pull request #1070 from harshavardhana/bug-fix

web: ListObjects is delimited, do not send a stat on prefix.
This commit is contained in:
Harshavardhana 2016-02-01 13:33:23 -08:00
commit 9ddfa2529c
1 changed files with 13 additions and 9 deletions

View File

@ -20,6 +20,7 @@ import (
"fmt"
"net"
"net/http"
"strings"
"time"
jwtgo "github.com/dgrijalva/jwt-go"
@ -95,19 +96,22 @@ func (web *WebAPI) ListObjects(r *http.Request, args *ListObjectsArgs, reply *[]
if object.Err != nil {
return object.Err
}
objectInfo := ObjectInfo{
Key: object.Key,
LastModified: object.LastModified,
Size: object.Size,
}
// TODO - This can get slower for large directories, we can
// perhaps extend the ListObjects XML to reply back
// ContentType as well.
objectInfo, e := web.Client.StatObject(args.BucketName, object.Key)
if e != nil {
return e
if !strings.HasSuffix(object.Key, "/") && object.Size > 0 {
objectStatInfo, e := web.Client.StatObject(args.BucketName, object.Key)
if e != nil {
return e
}
objectInfo.ContentType = objectStatInfo.ContentType
}
*reply = append(*reply, ObjectInfo{
Key: objectInfo.Key,
LastModified: objectInfo.LastModified,
Size: objectInfo.Size,
ContentType: objectInfo.ContentType,
})
*reply = append(*reply, objectInfo)
}
return nil
}