简体   繁体   中英

Softlayer Object Storage Python API Time To Live

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!

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM