in v3/internal/object_metadata.go [69:95]
func (e *ObjectMetadata) UnmarshalJSON(value []byte) error {
type StrictEnvelope ObjectMetadata
type LaxEnvelope struct {
StrictEnvelope
TagLen json.RawMessage `json:"x-amz-tag-len"`
UnencryptedContentLen json.RawMessage `json:"x-amz-unencrypted-content-length"`
}
inner := LaxEnvelope{}
err := json.Unmarshal(value, &inner)
if err != nil {
return err
}
*e = ObjectMetadata(inner.StrictEnvelope)
e.TagLen, err = getJSONNumberAsString(inner.TagLen)
if err != nil {
return fmt.Errorf("failed to parse tag length: %w", err)
}
e.UnencryptedContentLen, err = getJSONNumberAsString(inner.UnencryptedContentLen)
if err != nil {
return fmt.Errorf("failed to parse unencrypted content length: %w", err)
}
return nil
}