Esempio n. 1
0
def get_page(request, uuid, tiles_x, tiles_y, width, pagenr):
    s3url = S3url(settings.MS_CLIENT ["key_id"], settings.MS_CLIENT ["key_secret"])
    if not s3url.verifyUrlString(request.get_full_path()):
        return HttpResponseBadRequest(_("Invalid expiring url"))
    
    mediaprovider = MediaProvider()
    try:
        f = mediaprovider.getPage(Page(uuid, tiles_x, tiles_y, width, pagenr))
    except KeyError:
        return HttpResponseNotFound()
    
    data = f.read() if hasattr(f, 'read') else f
    return HttpResponse(data, mimetype='image/png')
Esempio n. 2
0
def get_blob(request, uuid, filename, mime_part1="application", mime_part2= "pdf"):
    mimetype="/".join((mime_part1, mime_part2))
    s3url = S3url(settings.MS_CLIENT ["key_id"], settings.MS_CLIENT ["key_secret"])
    if not s3url.verifyUrlString(request.get_full_path()):
        return HttpResponseBadRequest(_("Invalid expiring url"))
    
    mediaprovider = MediaProvider()
    try:
        f = mediaprovider.getBlob(uuid)
    except KeyError:
        return HttpResponseNotFound()

    response = HttpResponse(f.read(), mimetype=mimetype)
    response['Content-Disposition'] = 'attachment;filename=%s' % (filename) 
Esempio n. 3
0
def get_pdf(request, uuid, filename, branding=None):
    mimetype = "application/pdf"
    
    s3url = S3url(settings.MS_CLIENT ["key_id"], settings.MS_CLIENT ["key_secret"])
    if not s3url.verifyUrlString(request.get_full_path()):
        return HttpResponseBadRequest(_("Invalid expiring url"))
    
    mediaprovider = MediaProvider()
    f = mediaprovider.getBlob(uuid)
    #fixme: brand pdf with uuid barcode, and if branding != none with branding barcode also
     
    if f:
        response = HttpResponse(f.read(), mimetype=mimetype)
        response['Content-Disposition'] = 'attachment;filename=%s' % (filename)
        return response  
    else:
        return HttpResponseNotFound()
Esempio n. 4
0
File: tasks.py Progetto: natano/ecs
def rerender_pages(identifier=None, **kwargs):
    import tempfile, shutil
    from ecs.mediaserver.mediaprovider import MediaProvider
    from ecs.mediaserver.renderer import render_pages

    logger = rerender_pages.get_logger(**kwargs)
    logger.debug("rerender_pages called with identifier %s" % identifier)

    if identifier is None:
        logger.warning("Warning, rerender_pages(identifier is None)")
        return False, str(None), "identifier is none"

    mediaprovider = MediaProvider()
    try:
        filelike = mediaprovider.getBlob(identifier)
    except KeyError as exceptobj:
        logger.error("rerender_pages could not getBlob(%s), exception was %r" % (identifier, exceptobj))
        return False, str(identifier), repr(exceptobj)

    try:
        render_dirname = tempfile.mkdtemp()

        for page, data in render_pages(identifier, filelike, render_dirname):
            mediaprovider.setPage(page, data, use_render_diskcache=True)
            if hasattr(data, "close"):
                data.close()

    except IOError as exceptobj:
        logger.error("render_pages of blob %s returned an IOError: %r" % (identifier, exceptobj))
        result = False, str(identifier), repr(exceptobj)
    else:
        result = True, str(identifier), ""
    finally:
        shutil.rmtree(render_dirname)

    return result