How can I set the S3 object lifecycle using boto?

amazon-s3, boto, python

Solution

You aren't showing where "lifecycle_config" comes from in this example. However, what you should do is create a Lifecycle object, like this:

import boto.s3.lifecycle
lifecycle_config = boto.s3.lifecycle.Lifecycle()
lifecycle_config.add_rule('lc_rule_1', '/', 'Enabled', 1)

See class boto.s3.lifecycle for details about the Lifecycle object and what the above parameters mean.

Once you have a Lifecycle object, you can then use that in the call to configure_lifecycle(), like this:

bucket.configure_lifecycle(lifecycle_config)

Problem

I have uploaded several files to Amazon S3 using boto. However, I failed to set a lifecycle using statement (I know this can be done using the AWS Management Console, but I need to allow each user to decide how long want to keep the file). The boto API reference for S3 properly documents configure_lifecycle(lifecycle_config, headers=None) as the solution, but I'm unable to configure this. Can anyone correct my code? Thanks! ``` key='key' secretkey='secretkey' #build the connection conn = S3Connection(key, secretkey) bucket = conn.create_bucket('przm') k=Key(bucket) #select and upload the file name1='run1' k.key=name1 k.set_contents_from_filename('RUN') link1='https://s3.amazonaws.com/przm/'+name1 #allow anyone can download this file k.set_acl('public-read-write') #delete this file after one day. Can anyone give me some help here? configure_lifecycle(lifecycle_config, headers=None) ```

Original source