def download(request, name): try: request_headers = {} for key in ACCEPT_HEADERS: meta_key = key.replace('-', '_').upper() if meta_key in request.META: request_headers[key] = request.META[meta_key] f = default_storage.open(name) headers, data = f.connection.get_object( f.container_name, f.name, resp_chunk_size=1024 * 1024, headers=request_headers ) response = StreamingHttpResponse(data) for item in headers.viewitems(): response[item[0]] = item[1] except BaseException as e: response = HttpResponse() if hasattr(e, 'http_status'): response.status_code = e.http_status else: response.status_code = 500 logger.exception(e) return response
def get_file(request): path = request.GET['path'] if not is_allowed_file(path): return HttpResponse(status=404) response = StreamingHttpResponse() response['Accept-Ranges'] = 'bytes' if not os.path.exists(path.encode('utf-8')): response.status_code = 404 return response if '.flac' in path.lower(): response['Content-Type'] = 'audio/flac' elif '.mp3' in path.lower(): response['Content-Type'] = 'audio/mpeg' response['Content-Length'] = os.path.getsize(path.encode('utf-8')) if request.method == 'HEAD': print 'head' return response file = open(path.encode('utf-8'), 'rb') response.streaming_content = apply_range(request, response, file) return response
def get_file(request): path = request.GET['path'] if not is_allowed_file(path): return HttpResponse(status=404) response = StreamingHttpResponse() response['Accept-Ranges'] = 'bytes' if not os.path.exists(path.encode('utf-8')): response.status_code = 404 return response if '.flac' in path.lower(): response['Content-Type'] = 'audio/flac' elif '.mp3' in path.lower(): response['Content-Type'] = 'audio/mpeg' response['Content-Length'] = os.path.getsize(path.encode('utf-8')) if request.method == 'HEAD': print 'head' return response file = open(path.encode('utf-8'), 'rb') response.streaming_content = apply_range(request, response, file) return response
def infinite(request: HttpRequest): def iter(): while True: yield '\r\n\r\nz' * 10000 h = StreamingHttpResponse(iter()) h.status_code = 303 h['Location'] = '/normal/' return h
def download(request, name): try: f = default_storage.open(name) headers, data = f.connection.get_object( f.container_name, f.name, resp_chunk_size = 1024 * 1024 ) response = StreamingHttpResponse(data) for item in headers.viewitems(): response[item[0]] = item[1] except BaseException as e: response = HttpResponse() if hasattr(e, 'http_status'): response.status_code = e.http_status else: response.status_code = 500 logger.exception(e) return response