web: ListObjects is delimited, do not send a stat on prefix.

master
Harshavardhana 9 years ago
parent 9dfce111d9
commit b3bde61396
  1. 22
      web-handlers.go

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

Loading…
Cancel
Save