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")
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")
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")