"""
adds new and updates the values of previously set metadata
"""
- for key, val in meta.items():
- meta.pop(key)
- meta['X-%s-Meta-%s' %(entity.capitalize(), key.capitalize())] = val
- prev_meta = self._get_metadata(path)
+ prefix = 'x-%s-meta-' % entity
+ prev_meta = self._get_metadata(path, prefix)
prev_meta.update(meta)
headers = {}
for key, val in prev_meta.items():
- headers[key.capitalize()] = val
+ key = '%s%s' % (prefix, key)
+ key = '-'.join(elem.capitalize() for elem in key.split('-'))
+ headers[key] = val
self.post(path, headers=headers)
def _delete_metadata(self, path, entity, meta=[]):
"""
delete previously set metadata
"""
- prev_meta = self._get_metadata(path)
+ prefix = 'x-%s-meta-' % entity
+ prev_meta = self._get_metadata(path, prefix)
headers = {}
for key, val in prev_meta.items():
- if key.split('-')[-1] in meta:
+ if key in meta:
continue
- http_key = key.capitalize()
- headers[http_key] = val
+ key = '%s%s' % (prefix, key)
+ key = '-'.join(elem.capitalize() for elem in key.split('-'))
+ headers[key] = val
self.post(path, headers=headers)
# Storage Account Services
def restore_object(self, container, object):
"""
restores a trashed object
- actualy just resets all object metadata except trash
+ actualy removes trash object metadata info
"""
self.delete_object_metadata(container, object, ['trash'])
parser.add_option('--content-disposition', action='store', type='str',
dest='content-disposition', default=None,
help='provide the presentation style of the object')
- parser.add_option('--manifest', action='store', type='str',
- dest='manifest', default=None,
+ parser.add_option('-S', action='store',
+ dest='segment-size', default=False,
help='use for large file support')
+ parser.add_option('--manifest', action='store_true',
+ dest='manifest', default=None,
+ help='upload a manifestation file')
parser.add_option('--type', action='store',
dest='content-type', default=False,
help='create object with specific content type')
def execute(self, path, *args):
#in case of account fix the args
- if path.find('=') != -1:
+ if len(args) == 0:
args = list(args)
args.append(path)
args = tuple(args)