Revision 961f2fbe
b/pithos/lib/client.py | ||
---|---|---|
217 | 217 |
""" |
218 | 218 |
adds new and updates the values of previously set metadata |
219 | 219 |
""" |
220 |
for key, val in meta.items(): |
|
221 |
meta.pop(key) |
|
222 |
meta['X-%s-Meta-%s' %(entity.capitalize(), key.capitalize())] = val |
|
223 |
prev_meta = self._get_metadata(path) |
|
220 |
prefix = 'x-%s-meta-' % entity |
|
221 |
prev_meta = self._get_metadata(path, prefix) |
|
224 | 222 |
prev_meta.update(meta) |
225 | 223 |
headers = {} |
226 | 224 |
for key, val in prev_meta.items(): |
227 |
headers[key.capitalize()] = val |
|
225 |
key = '%s%s' % (prefix, key) |
|
226 |
key = '-'.join(elem.capitalize() for elem in key.split('-')) |
|
227 |
headers[key] = val |
|
228 | 228 |
self.post(path, headers=headers) |
229 | 229 |
|
230 | 230 |
def _delete_metadata(self, path, entity, meta=[]): |
231 | 231 |
""" |
232 | 232 |
delete previously set metadata |
233 | 233 |
""" |
234 |
prev_meta = self._get_metadata(path) |
|
234 |
prefix = 'x-%s-meta-' % entity |
|
235 |
prev_meta = self._get_metadata(path, prefix) |
|
235 | 236 |
headers = {} |
236 | 237 |
for key, val in prev_meta.items(): |
237 |
if key.split('-')[-1] in meta:
|
|
238 |
if key in meta: |
|
238 | 239 |
continue |
239 |
http_key = key.capitalize() |
|
240 |
headers[http_key] = val |
|
240 |
key = '%s%s' % (prefix, key) |
|
241 |
key = '-'.join(elem.capitalize() for elem in key.split('-')) |
|
242 |
headers[key] = val |
|
241 | 243 |
self.post(path, headers=headers) |
242 | 244 |
|
243 | 245 |
# Storage Account Services |
... | ... | |
402 | 404 |
def restore_object(self, container, object): |
403 | 405 |
""" |
404 | 406 |
restores a trashed object |
405 |
actualy just resets all object metadata except trash
|
|
407 |
actualy removes trash object metadata info
|
|
406 | 408 |
""" |
407 | 409 |
self.delete_object_metadata(container, object, ['trash']) |
408 | 410 |
|
b/tools/store | ||
---|---|---|
314 | 314 |
parser.add_option('--content-disposition', action='store', type='str', |
315 | 315 |
dest='content-disposition', default=None, |
316 | 316 |
help='provide the presentation style of the object') |
317 |
parser.add_option('--manifest', action='store', type='str',
|
|
318 |
dest='manifest', default=None,
|
|
317 |
parser.add_option('-S', action='store',
|
|
318 |
dest='segment-size', default=False,
|
|
319 | 319 |
help='use for large file support') |
320 |
parser.add_option('--manifest', action='store_true', |
|
321 |
dest='manifest', default=None, |
|
322 |
help='upload a manifestation file') |
|
320 | 323 |
parser.add_option('--type', action='store', |
321 | 324 |
dest='content-type', default=False, |
322 | 325 |
help='create object with specific content type') |
... | ... | |
494 | 497 |
|
495 | 498 |
def execute(self, path, *args): |
496 | 499 |
#in case of account fix the args |
497 |
if path.find('=') != -1:
|
|
500 |
if len(args) == 0:
|
|
498 | 501 |
args = list(args) |
499 | 502 |
args.append(path) |
500 | 503 |
args = tuple(args) |
Also available in: Unified diff