feat(metadata): enhance metadata handling by sanitizing extracted data and updating documentation for file storage

This commit is contained in:
2026-03-30 23:14:08 +02:00
parent 72b4f7ce3d
commit e6f00ce636
11 changed files with 108 additions and 17 deletions

View File

@@ -243,11 +243,32 @@ func splitDataURL(value string) (contentBase64 string, mediaType string) {
}
func decodeBase64(value string) ([]byte, error) {
decoded, err := base64.StdEncoding.DecodeString(value)
if err == nil {
return decoded, nil
cleaned := strings.Map(func(r rune) rune {
switch r {
case ' ', '\t', '\n', '\r':
return -1
default:
return r
}
}, value)
encodings := []*base64.Encoding{
base64.StdEncoding,
base64.RawStdEncoding,
base64.URLEncoding,
base64.RawURLEncoding,
}
return base64.RawStdEncoding.DecodeString(value)
var lastErr error
for _, encoding := range encodings {
decoded, err := encoding.DecodeString(cleaned)
if err == nil {
return decoded, nil
}
lastErr = err
}
return nil, lastErr
}
func normalizeMediaType(explicit string, fromDataURL string, content []byte) string {