boto3
import boto3
s3 = boto3.client(
"s3",
endpoint_url="https://relayer.example.com",
aws_access_key_id="AKIA...",
aws_secret_access_key="...",
region_name="us-east-1",
)
# Expire objects under a prefix after 90 days; expire noncurrent versions after 30
s3.put_bucket_lifecycle_configuration(
Bucket="my-bucket",
LifecycleConfiguration={
"Rules": [{
"ID": "expire-staging-90d",
"Status": "Enabled",
"Filter": {"Prefix": "staging/"},
"Expiration": {"Days": 90},
"NoncurrentVersionExpiration": {"NoncurrentDays": 30},
}]
},
)
# The response echoes x-amz-expiration when an enabled rule matches
resp = s3.put_object(Bucket="my-bucket", Key="staging/build-4821.tar.gz", Body=data)
print(resp["ResponseMetadata"]["HTTPHeaders"].get("x-amz-expiration"))
# Round-trip the config back
cfg = s3.get_bucket_lifecycle_configuration(Bucket="my-bucket")
print(cfg["Rules"])