You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Golang S3 SDK添加ObjectSizeGreaterThan过滤器遇MalformedXML错误

S3生命周期规则配置MalformedXML错误修复

错误原因

S3生命周期规则的Filter字段不支持直接同时指定Tag和ObjectSizeGreaterThan。当需要组合多个过滤条件时,必须通过And字段包裹这些条件,否则生成的XML不符合S3的校验规范,就会触发MalformedXML错误。

修复后的代码

把原来直接放在Filter下的Tag和ObjectSizeGreaterThan移到And字段中:

_, err = svc.PutBucketLifecycleConfiguration(&s3.PutBucketLifecycleConfigurationInput{
        Bucket: aws.String(bucketName),
        LifecycleConfiguration: &s3.BucketLifecycleConfiguration{
            Rules: []*s3.LifecycleRule{
                &s3.LifecycleRule{
                    ID: aws.String("s3-retention-daily"),
                    Filter: &s3.LifecycleRuleFilter{
                        And: &s3.LifecycleRuleAndOperator{
                            Tag: &s3.Tag{
                                Key:   aws.String("retention-type-daily"),
                                Value: aws.String("true"),
                            },
                            ObjectSizeGreaterThan: aws.Int64(30720),
                        },
                    },
                    Transitions: []*s3.Transition{
                        &s3.Transition{
                            Days:         aws.Int64(30),
                            StorageClass: aws.String(s3.TransitionStorageClassDeepArchive),
                        },
                    },
                    Status: aws.String(s3.ExpirationStatusEnabled),
                },
            },
        },
    })

验证逻辑

修改后生成的生命周期配置会将多条件过滤嵌套在And节点下,符合S3的XML Schema要求,就能正常通过接口校验了。

内容的提问来源于stack exchange,提问作者user20637560

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 13:15:28