if self.args.container is not None:
self.client.container = self.args.container
+@command(api='storage')
+class store_mkdir(_store_container_command):
+ """Create a directory"""
+
+ def main(self, path):
+ super(store_mkdir, self).main()
+ self.client.create_directory(path)
@command(api='storage')
class store_create(_store_account_command):
def request(self, method, path, **kwargs):
raw = kwargs.pop('raw', False)
success = kwargs.pop('success', 200)
+ directory = kwargs.pop('directory', False)
data = kwargs.pop('data', None)
headers = kwargs.pop('headers', {})
headers.setdefault('X-Auth-Token', self.token)
- if 'json' in kwargs:
- data = json.dumps(kwargs.pop('json'))
- headers.setdefault('Content-Type', 'application/json')
-
- if data:
- headers.setdefault('Content-Length', str(len(data)))
+ if directory:
+ headers.setdefault('Content-Type', 'application/directory')
+ headers.setdefault('Content-length', '0')
+ else:
+ if 'json' in kwargs:
+ data = json.dumps(kwargs.pop('json'))
+ headers.setdefault('Content-Type', 'application/json')
+ if data:
+ headers.setdefault('Content-Length', str(len(data)))
url = self.base_url + path
kwargs.setdefault('verify', False) # Disable certificate verification
data = f.read(size) if size is not None else f.read()
self.put(path, data=data, success=201)
+ def create_directory(self, object):
+ self.assert_container()
+ path = '/%s/%s/%s' % (self.account, self.container, object)
+ self.put(path, data='', directory=True, success=201)
+
def get_object(self, object):
self.assert_container()
path = '/%s/%s/%s' % (self.account, self.container, object)