Revision 5635f9ef pithos/api/functions.py
b/pithos/api/functions.py | ||
---|---|---|
1 |
# Copyright 2011 GRNET S.A. All rights reserved. |
|
2 |
# |
|
3 |
# Redistribution and use in source and binary forms, with or |
|
4 |
# without modification, are permitted provided that the following |
|
5 |
# conditions are met: |
|
6 |
# |
|
7 |
# 1. Redistributions of source code must retain the above |
|
8 |
# copyright notice, this list of conditions and the following |
|
9 |
# disclaimer. |
|
10 |
# |
|
11 |
# 2. Redistributions in binary form must reproduce the above |
|
12 |
# copyright notice, this list of conditions and the following |
|
13 |
# disclaimer in the documentation and/or other materials |
|
14 |
# provided with the distribution. |
|
15 |
# |
|
16 |
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
|
17 |
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
|
18 |
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
|
19 |
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
|
20 |
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
|
21 |
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
|
22 |
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
|
23 |
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
|
24 |
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
25 |
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
|
26 |
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
|
27 |
# POSSIBILITY OF SUCH DAMAGE. |
|
28 |
# |
|
29 |
# The views and conclusions contained in the software and |
|
30 |
# documentation are those of the authors and should not be |
|
31 |
# interpreted as representing official policies, either expressed |
|
32 |
# or implied, of GRNET S.A. |
|
33 |
|
|
1 | 34 |
import os |
2 | 35 |
import logging |
3 | 36 |
import hashlib |
... | ... | |
540 | 573 |
if not ranges: |
541 | 574 |
return HttpResponse(status=202) |
542 | 575 |
|
576 |
# # Need Content-Type and optional Transfer-Encoding. |
|
577 |
# content_length = -1 |
|
578 |
# if request.META.get('HTTP_TRANSFER_ENCODING') != 'chunked': |
|
579 |
# content_length = get_content_length(request) |
|
580 |
# # Use BadRequest here, even if the API says otherwise for PUT. |
|
581 |
# if not content_type: |
|
582 |
# raise BadRequest('Missing Content-Type header') |
|
583 |
# |
|
584 |
# if not prev_meta: |
|
585 |
# try: |
|
586 |
# prev_meta = backend.get_object_meta(request.user, v_container, v_object) |
|
587 |
# except NameError: |
|
588 |
# raise ItemNotFound('Object does not exist') |
|
589 |
# size = prev_meta['bytes'] |
|
590 |
# offset, length, total = ranges |
|
591 |
# if offset is None: |
|
592 |
# offset = size |
|
593 |
# if length is None: |
|
594 |
# length = content_length # Nevermind the error. |
|
595 |
# if total is not None and (total != size or offset >= size or (length > 0 and offset + length >= size)): |
|
596 |
# raise RangeNotSatisfiable('Supplied range will change provided object limits') |
|
597 |
# |
|
598 |
# sock = raw_input_socket(request) |
|
599 |
# for data in socket_read_iterator(sock, length): |
|
600 |
# # TODO: Raise 408 (Request Timeout) if this takes too long. |
|
601 |
# # TODO: Raise 499 (Client Disconnect) if a length is defined and we stop before getting this much data. |
|
602 |
# try: |
|
603 |
# backend.update_object(request.user, v_container, v_object, data, offset) |
|
604 |
# except NameError: |
|
605 |
# raise ItemNotFound('Container does not exist') |
|
606 |
# offset += len(data) |
|
607 |
|
|
543 | 608 |
return HttpResponse(status=202) |
544 | 609 |
|
545 | 610 |
@api_method('DELETE') |
Also available in: Unified diff