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 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 ListBuckets(prefix string) []BucketMetadata
// Object Operations // Object Operations
GetObjectMetadata(bucket string, object string) ObjectMetadata
CopyObjectToWriter(w io.Writer, bucket string, object string) (int64, error) CopyObjectToWriter(w io.Writer, bucket string, object string) (int64, error)
StoreObject(bucket string, key string, data io.Reader) error StoreObject(bucket string, key string, data io.Reader) error
ListObjects(bucket, prefix string, count int) []ObjectMetadata 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"] bucket := vars["bucket"]
object := vars["object"] 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) _, err := server.storage.CopyObjectToWriter(w, bucket, object)
switch err := err.(type) { switch err := err.(type) {
case nil: // success case nil: // success