Пример #1
0
def do_download_from_url():
    ##Questo metodo permette di eseguire il download dell'immagine
    if request.method == "POST":
        ##Ricavo il link dalla form html.
        s3Link = request.form['urlButton']
        ##Eseguo il parsing del link.
        imgNameDown, bucktN = parse_s3_link(
            s3Link)  ## [0] --> email , [1]--> bucketName
        ##genero il path della cartella per una eventuale creazione.
        emailName = imgNameDown.split("/", 1)
        path = app.config["IMAGE_DOWNLOADS"] + "/" + emailName[0]
        ##Creo la cartella in locale nella quale scaricare il file.
        try:
            os.mkdir(path)
        except OSError:
            print("Creation of the directory %s failed" % path)
        else:
            print("Successfully created the directory %s " % path)

        ##Eseguo il download da s3.
        functionS3.downloadFromBucket(
            os.path.join(app.config["IMAGE_DOWNLOADS"]) + "/" + imgNameDown,
            imgNameDown, bucktN[0], s3)
        pathImg = app.config["IMAGE_DOWNLOADS"] + "/" + imgNameDown
        print(pathImg)
        ##Eseguo il download per l'utente.
        return send_file(pathImg, as_attachment=True)

    return render_template("download.html")
Пример #2
0
def do_saturation():
    # saturation image
    username = nomeUtente

    if request.method == "POST":
        if request.files:
            # verifico che l'upload dell'imagine è stato effettivamente eseguito
            img = request.files["image"]  ##nome del file
            factor = request.form["factor"]  ##valore factor per la brightness
            # controllo che venga eseguito l'upload dell'immagine
            if img.filename == "":
                return redirect(request.url)
            # verifico che le misure siano corrette
            if factor == 0:
                print("Inserire un valore di factor diverso da 0")
                return redirect(request.url)
            if not allowed_ext(img.filename):
                print("Estensione non supportata dal sistema")
                return redirect(request.url)

            img.save(os.path.join(app.config["IMAGE_UPLOADS"], img.filename))

            if username:
                print(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename)
                # Eseguo l'upload su s3 in quanto successivamente sfrutto le funzioni lamda.
                functionS3.addToBucket(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename, username + "/" + img.filename, s3,
                    BUCKET_NAME_SATURATION)
                # rest api lambda
                url = 'https://5f9858gv9l.execute-api.us-east-1.amazonaws.com/default/satimg?imgName=' + img.filename + '&factor=' + factor + '&userName='******'immagine, una volta che è stata processata dalla lamda.
                functionS3.downloadFromBucket(
                    os.path.join(app.config["IMAGE_DOWNLOADS"]) + "/" +
                    img.filename, username + "/" + img.filename,
                    configS3.S3_BUCKET_SATURATION_AFTER, s3)
                ##Inserisco gli elementi all'interno di DynamoDB -->{Nome Utente, linkS3}
                urlS3 = "https://%s.s3.amazonaws.com/%s/%s" % (
                    configS3.S3_BUCKET_SATURATION_AFTER, username,
                    img.filename)
                functionDynamo.add_element_in_table(dynamodb, "Utenti",
                                                    username, urlS3)
                #rendo il nome dell'immagine globale per il successivo utilizzo nel download.
                global imgNameDownload
                imgNameDownload = img.filename
                #Eseguo il download.
                return redirect(url_for('do_download'))
            else:
                print(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename)
                # Eseguo l'upload su s3 in quanto successivamente sfrutto le funzioni lamda.
                functionS3.addToBucket(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename, img.filename, s3, BUCKET_NAME_SATURATION)
                # rest api lambda
                url = 'https://5f9858gv9l.execute-api.us-east-1.amazonaws.com/default/satimg?imgName=' + img.filename + '&factor=' + factor + '&userName='******'immagine, una volta che è stata processata dalla lamda.
                functionS3.downloadFromBucket(
                    os.path.join(app.config["IMAGE_DOWNLOADS"]) + "/" +
                    img.filename, img.filename,
                    configS3.S3_BUCKET_SATURATION_AFTER, s3)
                imgNameDownload = img.filename
                #Eseguo il download.
                return redirect(url_for('do_download'))

    return render_template("saturation.html")
Пример #3
0
def do_resize():
    # resize image

    username = nomeUtente

    if request.method == "POST":
        if request.files:
            # verifico che l'upload dell'imagine è stato effettivamente eseguito
            img = request.files["image"]  ##nome del file
            hSize = request.form["hSize"]  ##valore altezza
            wSize = request.form["wSize"]  ##valore larghezza

            # controllo che venga eseguito l'upload dell'immagine
            if img.filename == "":
                return redirect(request.url)
            # verifico che le misure siano corrette
            if hSize == "0" or wSize == "0":
                return redirect(request.url)
            if not allowed_ext(img.filename):
                print("Estensione non supportata dal sistema")
                return redirect(request.url)

            #Salvo l'immagine in locale.
            img.save(os.path.join(app.config["IMAGE_UPLOADS"], img.filename))

            if username:
                print(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename)
                # Eseguo l'upload su s3 in quanto successivamente sfrutto le funzioni lamda.
                functionS3.addToBucket(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename, username + "/" + img.filename, s3,
                    BUCKET_NAME_RESIZE)
                # rest api lambda
                url = 'https://62j41asgt0.execute-api.us-east-1.amazonaws.com/default/resImg?wSize=' + wSize + '&hSize=' + hSize + '&imgName=' + img.filename + '&userName='******'immagine, una volta che è stata processata dalla lamda.
                functionS3.downloadFromBucket(
                    os.path.join(app.config["IMAGE_DOWNLOADS"]) + "/" +
                    img.filename, username + "/" + img.filename,
                    configS3.S3_BUCKET_RESIZE_AFTER, s3)
                ##Inserisco gli elementi all'interno di DynamoDB -->{Nome Utente, linkS3}
                urlS3 = "https://%s.s3.amazonaws.com/%s/%s" % (
                    configS3.S3_BUCKET_RESIZE_AFTER, username, img.filename)
                functionDynamo.add_element_in_table(dynamodb, "Utenti",
                                                    username, urlS3)
                #rendo il nome dell'immagine globale per il successivo utilizzo nel download.
                global imgNameDownload
                imgNameDownload = img.filename
                #Eseguo il download.
                return redirect(url_for('do_download'))
            else:
                print(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename)
                # Eseguo l'upload su s3 in quanto successivamente sfrutto le funzioni lamda.
                functionS3.addToBucket(
                    os.path.join(app.config["IMAGE_UPLOADS"]) + "/" +
                    img.filename, img.filename, s3, BUCKET_NAME_RESIZE)
                # rest api lambda
                url = 'https://62j41asgt0.execute-api.us-east-1.amazonaws.com/default/resImg?wSize=' + wSize + '&hSize=' + hSize + '&imgName=' + img.filename + '&userName='******'immagine, una volta che è stata processata dalla lamda.
                functionS3.downloadFromBucket(
                    os.path.join(app.config["IMAGE_DOWNLOADS"]) + "/" +
                    img.filename, img.filename,
                    configS3.S3_BUCKET_RESIZE_AFTER, s3)
                imgNameDownload = img.filename
                #Eseguo il download.
                return redirect(url_for('do_download'))

    return render_template("resizeImage.html")