Merge pull request #114 from harshavardhana/pr_out_reply_back_errors_properly

This commit is contained in:
Harshavardhana 2015-02-01 03:11:39 -08:00
commit be7c9aacf8
2 changed files with 20 additions and 4 deletions

View File

@ -105,13 +105,22 @@ func (server *minioApi) listObjectsHandler(w http.ResponseWriter, req *http.Requ
acceptsContentType := getContentType(req)
objects, isTruncated, err := server.storage.ListObjects(bucket, prefix, 1000)
if err != nil {
switch err := err.(type) {
case nil: // success
response := generateObjectsListResult(bucket, objects, isTruncated)
w.Write(writeObjectHeadersAndResponse(w, response, acceptsContentType))
case mstorage.BucketNotFound:
log.Println(err)
w.WriteHeader(http.StatusNotFound)
w.Write([]byte(err.Error()))
case mstorage.ImplementationError:
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
return
w.Write([]byte(err.Error()))
default:
w.WriteHeader(http.StatusBadRequest)
w.Write([]byte(err.Error()))
}
response := generateObjectsListResult(bucket, objects, isTruncated)
w.Write(writeObjectHeadersAndResponse(w, response, acceptsContentType))
}
func (server *minioApi) putBucketHandler(w http.ResponseWriter, req *http.Request) {
@ -146,11 +155,13 @@ func (server *minioApi) getObjectHandler(w http.ResponseWriter, req *http.Reques
{
log.Println(err)
w.WriteHeader(http.StatusNotFound)
w.Write([]byte(err.Error()))
}
default:
{
log.Println(err)
w.WriteHeader(http.StatusInternalServerError)
w.Write([]byte(err.Error()))
}
}
}

View File

@ -153,6 +153,11 @@ func (storage *storage) ListObjects(bucket, prefix string, count int) ([]mstorag
rootPrefix := path.Join(storage.root, bucket)
// check bucket exists
if _, err := os.Stat(rootPrefix); os.IsNotExist(err) {
return []mstorage.ObjectMetadata{}, false, mstorage.BucketNotFound{Bucket: bucket}
}
files, err := ioutil.ReadDir(rootPrefix)
if err != nil {
return []mstorage.ObjectMetadata{}, false, mstorage.EmbedError("bucket", "", err)