Expose ParseMetadataHeader and SerializeMetadataHeader functions

closes #186
This commit is contained in:
Jason Papakostas 2018-05-22 11:46:18 -05:00
parent 5b37614190
commit 8acbc4cfdb
1 changed files with 8 additions and 7 deletions

View File

@ -268,7 +268,7 @@ func (handler *UnroutedHandler) PostFile(w http.ResponseWriter, r *http.Request)
} }
// Parse metadata // Parse metadata
meta := parseMeta(r.Header.Get("Upload-Metadata")) meta := ParseMetadataHeader(r.Header.Get("Upload-Metadata"))
info := FileInfo{ info := FileInfo{
Size: size, Size: size,
@ -377,7 +377,7 @@ func (handler *UnroutedHandler) HeadFile(w http.ResponseWriter, r *http.Request)
} }
if len(info.MetaData) != 0 { if len(info.MetaData) != 0 {
w.Header().Set("Upload-Metadata", serializeMeta(info.MetaData)) w.Header().Set("Upload-Metadata", SerializeMetadataHeader(info.MetaData))
} }
w.Header().Set("Cache-Control", "no-store") w.Header().Set("Cache-Control", "no-store")
@ -847,9 +847,10 @@ func (handler *UnroutedHandler) sizeOfUploads(ids []string) (size int64, err err
return return
} }
// Parse the Upload-Metadata header as defined in the File Creation extension. // ParseMetadataHeader parses the Upload-Metadata header as defined in the
// File Creation extension.
// e.g. Upload-Metadata: name bHVucmpzLnBuZw==,type aW1hZ2UvcG5n // e.g. Upload-Metadata: name bHVucmpzLnBuZw==,type aW1hZ2UvcG5n
func parseMeta(header string) map[string]string { func ParseMetadataHeader(header string) map[string]string {
meta := make(map[string]string) meta := make(map[string]string)
for _, element := range strings.Split(header, ",") { for _, element := range strings.Split(header, ",") {
@ -875,10 +876,10 @@ func parseMeta(header string) map[string]string {
return meta return meta
} }
// Serialize a map of strings into the Upload-Metadata header format used in the // SerializeMetadataHeader serializes a map of strings into the Upload-Metadata
// response for HEAD requests. // header format used in the response for HEAD requests.
// e.g. Upload-Metadata: name bHVucmpzLnBuZw==,type aW1hZ2UvcG5n // e.g. Upload-Metadata: name bHVucmpzLnBuZw==,type aW1hZ2UvcG5n
func serializeMeta(meta map[string]string) string { func SerializeMetadataHeader(meta map[string]string) string {
header := "" header := ""
for key, value := range meta { for key, value := range meta {
valueBase64 := base64.StdEncoding.EncodeToString([]byte(value)) valueBase64 := base64.StdEncoding.EncodeToString([]byte(value))