2012-05-11 48 views
4

我已經使用boto將多個文件上傳到Amazon S3。但是,我沒有設置生命週期使用聲明(我知道這可以使用AWS Management Console完成,但我需要允許每個用戶決定要保留文件多長時間)。如何使用boto設置S3對象生命週期?

boto API reference for S3正確記錄configure_lifecycle(lifecycle_config, headers=None)作爲解決方案,但我無法配置此。任何人都可以糾正我的代碼

謝謝!

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) 

回答

5

你是不是表示在「lifecycle_config」來自於這個例子。但是,你應該做的是創造一個生命週期的對象,像這樣:

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

boto.s3.lifecycle類有關Lifecycle對象和細節上面有哪些參數的含義。

一旦你有一個生命週期的對象,你就可以使用,在調用configure_lifecycle(),像這樣:

bucket.configure_lifecycle(lifecycle_config) 
+0

不會爲當前版本boto3工作了。 – Johannes