forked from TrueCloudLab/frostfs-s3-gw
[#307] Filter system metadata
Signed-off-by: Denis Kirillov <denis@nspcc.ru>
This commit is contained in:
parent
d532eb710f
commit
c202893563
4 changed files with 11 additions and 2 deletions
|
@ -77,6 +77,9 @@ func writeHeaders(h http.Header, info *data.ObjectInfo, tagSetLength int) {
|
|||
h.Set(api.AmzTaggingCount, strconv.Itoa(tagSetLength))
|
||||
|
||||
for key, val := range info.Headers {
|
||||
if layer.IsSystemHeader(key) {
|
||||
continue
|
||||
}
|
||||
h[api.MetadataPrefix+key] = []string{val}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -444,7 +444,6 @@ func (n *layer) GetBucketTagging(ctx context.Context, bucketName string) (map[st
|
|||
}
|
||||
|
||||
objInfo, err := n.headSystemObject(ctx, bktInfo, formBucketTagObjectName(bucketName))
|
||||
|
||||
if err != nil && !errors.IsS3Error(err, errors.ErrNoSuchKey) {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -546,6 +546,10 @@ func isSystem(obj *data.ObjectInfo) bool {
|
|||
len(obj.Headers[attrVersionsIgnore]) > 0
|
||||
}
|
||||
|
||||
func IsSystemHeader(key string) bool {
|
||||
return strings.HasPrefix(key, "S3-")
|
||||
}
|
||||
|
||||
func trimAfterObjectName(startAfter string, objects []*data.ObjectInfo) []*data.ObjectInfo {
|
||||
if len(objects) != 0 && objects[len(objects)-1].Name <= startAfter {
|
||||
return nil
|
||||
|
|
|
@ -88,7 +88,10 @@ func (n *layer) putSystemObjectIntoNeoFS(ctx context.Context, p *PutSystemObject
|
|||
|
||||
for k, v := range p.Metadata {
|
||||
attr := object.NewAttribute()
|
||||
attr.SetKey(p.Prefix + k)
|
||||
if !IsSystemHeader(k) {
|
||||
k = p.Prefix + k
|
||||
}
|
||||
attr.SetKey(k)
|
||||
if p.Prefix == tagPrefix && v == "" {
|
||||
v = tagEmptyMark
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue