Adding etag to headers

master
Frederick F. Kautz IV 10 years ago
parent e410337d26
commit 9ca1e37235
  1. 6
      pkg/storage/inmemory/inmemory.go
  2. 1
      pkg/storage/storage.go
  3. 5
      pkg/webapi/minioapi/minioapi.go

@ -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
}

@ -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

@ -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

Loading…
Cancel
Save