google cloud storage: set the Content-Type from the file name

This commit is contained in:
Nick Craig-Wood 2014-07-14 12:44:31 +01:00
parent b72fc69fbe
commit c91c96565f

View File

@ -14,6 +14,7 @@ import (
"encoding/hex" "encoding/hex"
"fmt" "fmt"
"io" "io"
"mime"
"net/http" "net/http"
"path" "path"
"regexp" "regexp"
@ -475,17 +476,20 @@ func (o *FsObjectStorage) Open() (in io.ReadCloser, err error) {
// //
// The new object may have been created if an error is returned // The new object may have been created if an error is returned
func (o *FsObjectStorage) Update(in io.Reader, modTime time.Time, size int64) error { func (o *FsObjectStorage) Update(in io.Reader, modTime time.Time, size int64) error {
// FIXME Set the mtime // Guess the content type
contentType := mime.TypeByExtension(path.Ext(o.remote))
if contentType == "" {
contentType = "application/octet-stream"
}
object := storage.Object{ object := storage.Object{
// FIXME other stuff here? ACL?? // FIXME other stuff here? ACL??
Bucket: o.storage.bucket, Bucket: o.storage.bucket,
Name: o.storage.root + o.remote, Name: o.storage.root + o.remote,
// ContentType: ??? ContentType: contentType,
// Crc32c: ??? // set this - will it get checked? Size: uint64(size),
// Md5Hash: will this get checked? Updated: modTime.Format(RFC3339Out), // Doesn't get set
Size: uint64(size), Metadata: metadataFromModTime(modTime),
Updated: modTime.Format(RFC3339Out), // Doesn't get set
Metadata: metadataFromModTime(modTime),
} }
// FIXME ACL???? // FIXME ACL????
_, err := o.storage.svc.Objects.Insert(o.storage.bucket, &object).Media(in).Name(object.Name).Do() _, err := o.storage.svc.Objects.Insert(o.storage.bucket, &object).Media(in).Name(object.Name).Do()