Adding etag to headers

This commit is contained in:
Frederick F. Kautz IV 2015-01-21 15:02:08 -08:00
parent e410337d26
commit 9ca1e37235
3 changed files with 12 additions and 0 deletions

View file

@ -150,3 +150,9 @@ func isValidBucket(bucket string) bool {
}
return valid
}
func (storage *Storage) GetObjectMetadata(bucket, key string) mstorage.ObjectMetadata {
objectKey := bucket + ":" + key
return storage.objectdata[objectKey].metadata
}

View file

@ -26,6 +26,7 @@ type Storage interface {
ListBuckets(prefix string) []BucketMetadata
// Object Operations
GetObjectMetadata(bucket string, object string) ObjectMetadata
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

View file

@ -55,6 +55,11 @@ func (server *minioApi) getObjectHandler(w http.ResponseWriter, req *http.Reques
bucket := vars["bucket"]
object := vars["object"]
metadata := server.storage.GetObjectMetadata(bucket, object)
lastModifiedTime := time.Unix(metadata.SecCreated, 0)
lastModified := lastModifiedTime.Format(time.RFC1123)
w.Header().Set("ETag", metadata.ETag)
w.Header().Set("Last-Modified", lastModified)
_, err := server.storage.CopyObjectToWriter(w, bucket, object)
switch err := err.(type) {
case nil: // success