# unauthorized (401),
# badRequest (400)
- meta = backend.get_account_meta(request.user)
+ meta = backend.get_account_meta(v_account)
response = HttpResponse(status=204)
put_account_meta(response, meta)
# badRequest (400)
meta = get_account_meta(request)
- backend.update_account_meta(request.user, meta, replace=True)
+ backend.update_account_meta(v_account, meta, replace=True)
return HttpResponse(status=202)
@api_method('GET', format_allowed=True)
# unauthorized (401),
# badRequest (400)
- meta = backend.get_account_meta(request.user)
+ meta = backend.get_account_meta(v_account)
validate_modification_preconditions(request, meta)
limit = 10000
try:
- containers = [x[0] for x in backend.list_containers(request.user, marker, limit)]
+ containers = [x[0] for x in backend.list_containers(v_account, marker, limit)]
except NameError:
containers = []
container_meta = []
for x in containers:
try:
- meta = backend.get_container_meta(request.user, x)
+ meta = backend.get_container_meta(v_account, x)
except NameError:
continue
container_meta.append(printable_meta_dict(meta))
if request.serialization == 'xml':
- data = render_to_string('containers.xml', {'account': request.user, 'containers': container_meta})
+ data = render_to_string('containers.xml', {'account': v_account, 'containers': container_meta})
elif request.serialization == 'json':
data = json.dumps(container_meta)
response.status_code = 200
# badRequest (400)
try:
- meta = backend.get_container_meta(request.user, v_container)
- meta['object_meta'] = backend.list_object_meta(request.user, v_container)
+ meta = backend.get_container_meta(v_account, v_container)
+ meta['object_meta'] = backend.list_object_meta(v_account, v_container)
except NameError:
raise ItemNotFound('Container does not exist')
meta = get_container_meta(request)
try:
- backend.put_container(request.user, v_container)
+ backend.put_container(v_account, v_container)
ret = 201
except NameError:
ret = 202
if len(meta) > 0:
- backend.update_container_meta(request.user, v_container, meta, replace=True)
+ backend.update_container_meta(v_account, v_container, meta, replace=True)
return HttpResponse(status=ret)
meta = get_container_meta(request)
try:
- backend.update_container_meta(request.user, v_container, meta, replace=True)
+ backend.update_container_meta(v_account, v_container, meta, replace=True)
except NameError:
raise ItemNotFound('Container does not exist')
return HttpResponse(status=202)
# badRequest (400)
try:
- backend.delete_container(request.user, v_container)
+ backend.delete_container(v_account, v_container)
except NameError:
raise ItemNotFound('Container does not exist')
except IndexError:
# badRequest (400)
try:
- meta = backend.get_container_meta(request.user, v_container)
- meta['object_meta'] = backend.list_object_meta(request.user, v_container)
+ meta = backend.get_container_meta(v_account, v_container)
+ meta['object_meta'] = backend.list_object_meta(v_account, v_container)
except NameError:
raise ItemNotFound('Container does not exist')
keys = []
try:
- objects = [x[0] for x in backend.list_objects(request.user, v_container, prefix, delimiter, marker, limit, virtual, keys)]
+ objects = [x[0] for x in backend.list_objects(v_account, v_container, prefix, delimiter, marker, limit, virtual, keys)]
except NameError:
raise ItemNotFound('Container does not exist')
object_meta = []
for x in objects:
try:
- meta = backend.get_object_meta(request.user, v_container, x)
+ meta = backend.get_object_meta(v_account, v_container, x)
except NameError:
# Virtual objects/directories.
if virtual and delimiter and x.endswith(delimiter):
version = get_version(request)
try:
- meta = backend.get_object_meta(request.user, v_container, v_object, version)
+ meta = backend.get_object_meta(v_account, v_container, v_object, version)
except NameError:
raise ItemNotFound('Object does not exist')
except IndexError:
version = get_version(request)
try:
- meta = backend.get_object_meta(request.user, v_container, v_object, version)
+ meta = backend.get_object_meta(v_account, v_container, v_object, version)
except NameError:
raise ItemNotFound('Object does not exist')
except IndexError:
return response
try:
- size, hashmap = backend.get_object_hashmap(request.user, v_container, v_object, version)
+ size, hashmap = backend.get_object_hashmap(v_account, v_container, v_object, version)
except NameError:
raise ItemNotFound('Object does not exist')
except IndexError:
boundary = uuid.uuid4().hex
else:
boundary = ''
- wrapper = ObjectWrapper(request.user, v_container, v_object, ranges, size, hashmap, boundary)
+ wrapper = ObjectWrapper(v_account, v_container, v_object, ranges, size, hashmap, boundary)
response = HttpResponse(wrapper, status=ret)
put_object_meta(response, meta)
if ret == 206:
content_length = get_content_length(request)
if move_from:
- copy_or_move_object(request, move_from, (v_container, v_object), move=True)
+ copy_or_move_object(request, v_account, move_from, (v_container, v_object), move=True)
else:
- copy_or_move_object(request, copy_from, (v_container, v_object), move=False)
+ copy_or_move_object(request, v_account, copy_from, (v_container, v_object), move=False)
return HttpResponse(status=201)
meta = get_object_meta(request)
try:
# TODO: Update metadata with the hashmap.
- backend.update_object_hashmap(request.user, v_container, v_object, size, hashmap)
+ backend.update_object_hashmap(v_account, v_container, v_object, size, hashmap)
except NameError:
raise ItemNotFound('Container does not exist')
try:
- backend.update_object_meta(request.user, v_container, v_object, meta, replace=True)
+ backend.update_object_meta(v_account, v_container, v_object, meta, replace=True)
except NameError:
raise ItemNotFound('Object does not exist')
dest_path = request.META.get('HTTP_DESTINATION')
if not dest_path:
raise BadRequest('Missing Destination header')
- copy_or_move_object(request, (v_container, v_object), dest_path, move=False)
+ copy_or_move_object(request, v_account, (v_container, v_object), dest_path, move=False)
return HttpResponse(status=201)
@api_method('MOVE')
dest_path = request.META.get('HTTP_DESTINATION')
if not dest_path:
raise BadRequest('Missing Destination header')
- copy_or_move_object(request, (v_container, v_object), dest_path, move=True)
+ copy_or_move_object(request, v_account, (v_container, v_object), dest_path, move=True)
return HttpResponse(status=201)
@api_method('POST')
del(meta['Content-Type']) # Do not allow changing the Content-Type.
try:
- prev_meta = backend.get_object_meta(request.user, v_container, v_object)
+ prev_meta = backend.get_object_meta(v_account, v_container, v_object)
except NameError:
raise ItemNotFound('Object does not exist')
if k in prev_meta:
meta[k] = prev_meta[k]
try:
- backend.update_object_meta(request.user, v_container, v_object, meta, replace=True)
+ backend.update_object_meta(v_account, v_container, v_object, meta, replace=True)
except NameError:
raise ItemNotFound('Object does not exist')
content_length = get_content_length(request)
try:
- size, hashmap = backend.get_object_hashmap(request.user, v_container, v_object)
+ size, hashmap = backend.get_object_hashmap(v_account, v_container, v_object)
except NameError:
raise ItemNotFound('Object does not exist')
size = offset
try:
# TODO: Update metadata with the hashmap.
- backend.update_object_hashmap(request.user, v_container, v_object, size, hashmap)
+ backend.update_object_hashmap(v_account, v_container, v_object, size, hashmap)
except NameError:
raise ItemNotFound('Container does not exist')
meta = {}
meta['hash'] = hashmap_hash(hashmap)
try:
- backend.update_object_meta(request.user, v_container, v_object, meta)
+ backend.update_object_meta(v_account, v_container, v_object, meta)
except NameError:
raise ItemNotFound('Object does not exist')
# badRequest (400)
try:
- backend.delete_object(request.user, v_container, v_object)
+ backend.delete_object(v_account, v_container, v_object)
except NameError:
raise ItemNotFound('Object does not exist')
return HttpResponse(status=204)
if if_none_match == '*' or meta['hash'] in [x.lower() for x in parse_etags(if_none_match)]:
raise NotModified('Resource Etag matches')
-def copy_or_move_object(request, src_path, dest_path, move=False):
+def copy_or_move_object(request, v_account, src_path, dest_path, move=False):
"""Copy or move an object."""
if type(src_path) == str:
parts = src_path.split('/')
meta = get_object_meta(request)
# Keep previous values of 'Content-Type' (if a new one is absent) and 'hash'.
try:
- src_meta = backend.get_object_meta(request.user, src_container, src_name)
+ src_meta = backend.get_object_meta(v_account, src_container, src_name)
except NameError:
raise ItemNotFound('Container or object does not exist')
if 'Content-Type' in meta and 'Content-Type' in src_meta:
# TODO: Copy or move with 'versioned' set.
try:
if move:
- backend.move_object(request.user, src_container, src_name, dest_container, dest_name, meta, replace_meta=True)
+ backend.move_object(v_account, src_container, src_name, dest_container, dest_name, meta, replace_meta=True)
else:
- backend.copy_object(request.user, src_container, src_name, dest_container, dest_name, meta, replace_meta=True)
+ backend.copy_object(v_account, src_container, src_name, dest_container, dest_name, meta, replace_meta=True)
except NameError:
raise ItemNotFound('Container or object does not exist')
try:
if http_method and request.method != http_method:
raise BadRequest('Method not allowed.')
-
+
# The args variable may contain up to (account, container, object).
if len(args) > 1 and len(args[1]) > 256:
raise BadRequest('Container name too large.')