2525
2626
2727def create_object (
28- api ,
28+ session ,
2929 url ,
3030 container ,
3131 object ,
3232):
3333 """Create an object, upload it to a container
3434
35- :param api : a restapi object
35+ :param session : a restapi object
3636 :param url: endpoint
3737 :param container: name of container to store object
3838 :param object: local path to object
3939 :returns: dict of returned headers
4040 """
4141
4242 full_url = "%s/%s/%s" % (url , container , object )
43- response = api .put (full_url , data = open (object ))
43+ response = session .put (full_url , data = open (object ))
4444 url_parts = urlparse (url )
4545 data = {
4646 'account' : url_parts .path .split ('/' )[- 1 ],
4747 'container' : container ,
4848 'object' : object ,
49+ 'x-trans-id' : response .headers .get ('X-Trans-Id' , None ),
50+ 'etag' : response .headers .get ('Etag' , None ),
4951 }
50- data ['x-trans-id' ] = response .headers .get ('X-Trans-Id' , None )
51- data ['etag' ] = response .headers .get ('Etag' , None )
5252
5353 return data
5454
5555
5656def delete_object (
57- api ,
57+ session ,
5858 url ,
5959 container ,
6060 object ,
6161):
6262 """Delete an object stored in a container
6363
64- :param api : a restapi object
64+ :param session : a restapi object
6565 :param url: endpoint
6666 :param container: name of container that stores object
6767 :param container: name of object to delete
6868 """
6969
70- api .delete ("%s/%s/%s" % (url , container , object ))
70+ session .delete ("%s/%s/%s" % (url , container , object ))
7171
7272
7373def list_objects (
74- api ,
74+ session ,
7575 url ,
7676 container ,
7777 marker = None ,
@@ -84,7 +84,7 @@ def list_objects(
8484):
8585 """Get objects in a container
8686
87- :param api : a restapi object
87+ :param session : a restapi object
8888 :param url: endpoint
8989 :param container: container name to get a listing for
9090 :param marker: marker query
@@ -101,7 +101,7 @@ def list_objects(
101101
102102 if full_listing :
103103 data = listing = list_objects (
104- api ,
104+ session ,
105105 url ,
106106 container ,
107107 marker ,
@@ -117,7 +117,7 @@ def list_objects(
117117 else :
118118 marker = listing [- 1 ]['name' ]
119119 listing = list_objects (
120- api ,
120+ session ,
121121 url ,
122122 container ,
123123 marker ,
@@ -131,7 +131,6 @@ def list_objects(
131131 data .extend (listing )
132132 return data
133133
134- object_url = url
135134 params = {
136135 'format' : 'json' ,
137136 }
@@ -147,32 +146,31 @@ def list_objects(
147146 params ['prefix' ] = prefix
148147 if path :
149148 params ['path' ] = path
150- url = "%s/%s" % (object_url , container )
151- return api . list ( url , params = params )
149+ requrl = "%s/%s" % (url , container )
150+ return session . get ( requrl , params = params ). json ( )
152151
153152
154153def show_object (
155- api ,
154+ session ,
156155 url ,
157156 container ,
158157 obj ,
159158):
160159 """Get object details
161160
162- :param api : a restapi object
161+ :param session : a restapi object
163162 :param url: endpoint
164163 :param container: container name to get a listing for
165164 :returns: dict of object properties
166165 """
167166
168- response = api .head ("%s/%s/%s" % (url , container , obj ))
169- url_parts = urlparse (url )
167+ response = session .head ("%s/%s/%s" % (url , container , obj ))
170168 data = {
171- 'account' : url_parts . path . split ( '/' )[ - 1 ] ,
169+ 'account' : response . headers . get ( 'x-container-meta-owner' , None ) ,
172170 'container' : container ,
173171 'object' : obj ,
172+ 'content-type' : response .headers .get ('content-type' , None ),
174173 }
175- data ['content-type' ] = response .headers .get ('content-type' , None )
176174 if 'content-length' in response .headers :
177175 data ['content-length' ] = response .headers .get ('content-length' , None )
178176 if 'last-modified' in response .headers :
@@ -184,10 +182,10 @@ def show_object(
184182 'x-object-manifest' , None )
185183 for key , value in six .iteritems (response .headers ):
186184 if key .startswith ('x-object-meta-' ):
187- data [key [len ('x-object-meta-' ):].title ()] = value
185+ data [key [len ('x-object-meta-' ):].lower ()] = value
188186 elif key not in (
189187 'content-type' , 'content-length' , 'last-modified' ,
190- 'etag' , 'date' , 'x-object-manifest' ):
191- data [key .title ()] = value
188+ 'etag' , 'date' , 'x-object-manifest' , 'x-container-meta-owner' ):
189+ data [key .lower ()] = value
192190
193191 return data
0 commit comments