2015-07-29 9:46 GMT+02:00 Vincenzo Pii <[email protected]>: > > > 2015-07-29 8:01 GMT+02:00 Clint Byrum <[email protected]>: > >> Excerpts from John Dickinson's message of 2015-07-28 22:01:54 -0700: >> > You can also use swiftclient.service module. It is the wrapper on top >> of the low-level swiftclient.client that is actually what the CLI tool uses >> for some of its higher-order functions (like splitting larger local files >> and making manifest objects). >> > >> > You'd have something like: >> > >> > results = swiftclient.service.upload('target_container', >> ['path/to/local/file',], options={'segment_size': 1048576000}) >> > >> >> Indeed. To build on this, since you may have more than one cloud, we've >> added some pieces to the 'shade' library that figures out what segment >> sizes to use and just lets you pass in paths. Unfortunately I just >> noticed the create_object method isn't well documented, but I submitted >> a patch so here is that documentation: >> >> https://review.openstack.org/#/c/206872/1/shade/__init__.py >> >> Basically something like >> >> >> import shade >> >> cloud = shade.openstack_cloud() >> cloud.create_object('target_container', 'call me maybe', >> 'path/to/local/file') >> >> _______________________________________________ >> Mailing list: >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack >> Post to : [email protected] >> Unsubscribe : >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack >> > > > Hi Guys, > > Thanks for the inputs! > > I used the same flow as the CLI part of the swift client, as John > suggested. I found it strange that the CLI and the python client APIs are > not unified, I imagined that I would have found the same interfaces after > some call layers. > > So this is what I did: > > import swiftclient.service > from swiftclient.service import SwiftService > > swiftclient.service._default_global_options['os_username'] = '' > swiftclient.service._default_global_options['os_password'] = '' > swiftclient.service._default_global_options['os_tenant_name'] = '' > swiftclient.service._default_global_options['os_auth_url'] = '' > > container_name = 'newcont' > filename = ['large_object'] > segment_size = '1048576' > > with SwiftService() as sw: > for r in sw.upload(container_name, filename, {'segment_size': > segment_size}): > print r['success'] > > > The shade approach is actually the cleanest one! >
I've opened this report: https://bugs.launchpad.net/python-swiftclient/+bug/1479284
_______________________________________________ Mailing list: http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack Post to : [email protected] Unsubscribe : http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack
