0
votes

How do I set time to live for a file on object storage?

Looking at the code in https://github.com/softlayer/softlayer-object-storage-python/blob/master/object_storage/storage_object.py it takes in (self, data, check_md5) with no TTL option.

sl_storage = object_storage.get_client(
    username = environment['slos_username'],
    password = environment['api_key'],
    auth_url = environment['auth_url']
)

# get container 
sl_container = sl_storage.get_container(environment['object_container'])
# create "pointer" to cointainer file fabfile.zip

sl_file = sl_container[filename]
myzip = open(foldername + filename, 'rb')
sl_file.create()

sl_file.send(myzip, TIME_TO_LIVE_PARAM=100)

I also tried according to https://github.com/softlayer/softlayer-object-storage-python/blob/master/object_storage/container.py

sl_file['ttl'] = timetolive

But it doesn't work.

Thanks!

2

2 Answers

0
votes

You need to make sure that the "ttl" is available in the headers, The "TTL" header is available when your container has enabled CDN.

so to verify that the ttl header exist you can use this code line:

sl_storage['myContainserName']['MyFileName'].headers

then you can update the tll using this line code:

sl_storage['myContainserName']['MyFileName'].update({'x-cdn-ttl':'3600'})

in case the ttl values does not exist and you have the cdn enabled try to create the header using this line code:

  sl_storage['myContainserName']['MyFileName'].create({'x-cdn-ttl':'3600'})

Regards

0
votes

You need to set up the header "X-Delete-At: 1417341600" where 1417341600 is a Unix timestamp see more information here http://docs.openstack.org/developer/swift/overview_expiring_objects.html

using the Python client you can use the update method: https://github.com/softlayer/softlayer-object-storage-python/blob/master/object_storage/storage_object.py#L210-L216

sl_storage['myContainserName']['MyFileName'].update({'X-Delete-At':1417341600})

Regards