From 9808c6af1da970c2290f571419427f36ef80366b Mon Sep 17 00:00:00 2001
From: Dave Welsh <dw927@drexel.edu>
Date: Sun, 26 Feb 2023 19:58:05 -0500
Subject: [PATCH] Getting images from s3 now through hard coding.
---
front_end/dpath.py | 5 ++--
upload_service/app.py | 3 +-
upload_service/diagnosis_provider.py | 41 ++++++++++++++++++++++++----
3 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/front_end/dpath.py b/front_end/dpath.py
index 86907dd..bf57598 100644
--- a/front_end/dpath.py
+++ b/front_end/dpath.py
@@ -70,8 +70,9 @@ def post_file(request) :
return response
def image_name(image_url) :
- image_name = image_url.split('/')[-1]
- return image_name
+ print(image_url)
+ print(image_url.split('/')[-1])
+ return image_url.split('/')[-1]
def upload_service_url(image_url) :
return image_url.replace('..', REPORTS_SERVICE_URL)
diff --git a/upload_service/app.py b/upload_service/app.py
index 136f07f..b99946f 100644
--- a/upload_service/app.py
+++ b/upload_service/app.py
@@ -34,6 +34,7 @@ def get_reports() :
@app.route(f'/{PREFIX}/report/<string:report_id>/images', methods=['GET'])
def get_images(report_id) :
provider = Provider()
+ provider.download_images(report_id)
response = jsonify(provider.get_images(report_id))
response.status_code = 200
return response
@@ -41,7 +42,7 @@ def get_images(report_id) :
@app.route(f'/{PREFIX}/report/<string:report_id>/image/<string:file_name>', methods=['GET'])
def get_image(report_id, file_name) :
provider = Provider()
- path = provider.get_image_path(file_name)
+ path = provider.get_image_path(report_id, file_name)
return send_file(
path,
download_name=file_name,
diff --git a/upload_service/diagnosis_provider.py b/upload_service/diagnosis_provider.py
index 2c37d44..b7b4907 100644
--- a/upload_service/diagnosis_provider.py
+++ b/upload_service/diagnosis_provider.py
@@ -2,6 +2,8 @@ import requests
from PIL import Image
import os
from base64 import b64encode
+import boto3
+import glob
BASE_URL = 'http://127.0.0.1:5000'
SAVE_DIRECTORY = 'C:\\Users\\Dave\\OneDrive\\Documents\\Capstone\\data\\'
@@ -21,17 +23,46 @@ class Provider:
def get_reports(self):
url = BASE_URL + '/request_info'
- return requests.get(url).json()
+ response = requests.get(url)
+ return response.json()
def get_images(self, report_id):
+ report_id = 'fake_request_id'
+ save_chip_path = f'../dpath/report/{report_id}/image'
+ result = glob.glob(f'{save_chip_path}/*.png')[:50]
response = []
- for _ in range(50) :
- response.append(f'../dpath/report/{report_id}/image/reportimage123.png')
+ for i in result:
+ response.append(i.replace('\\', '/'))
return response
- def get_image_path(self, image_name):
- return SAVE_DIRECTORY + image_name
+ def download_images(self, report_id) :
+ s3_client = boto3.client('s3')
+ s3_resource = boto3.resource('s3')
+ image_bucket = s3_resource.Bucket('digpath-predictions')
+ report_id = 'fake_request_id'
+ save_chip_path = f'../dpath/report/{report_id}/image'
+ dowloaded_files = glob.glob(f'{save_chip_path}/*.png')
+ prefix = f'{report_id}/severe_predictions/'
+
+ if not os.path.exists(save_chip_path):
+ os.makedirs(save_chip_path)
+
+ for s3_obj in image_bucket.objects.filter(Prefix=prefix):
+ if s3_obj.key == prefix:
+ continue
+
+ filename = s3_obj.key.split('/')[-1]
+ file_path = f'{save_chip_path}/{filename}'
+ if(file_path not in dowloaded_files) :
+ s3_client.download_file('digpath-predictions', s3_obj.key, file_path)
+ def get_image_path_old(self, image_name):
+ return SAVE_DIRECTORY + image_name
+
+ def get_image_path(self, report_id, image_name) :
+ report_id = 'fake_request_id'
+ return f'{os.getcwd()}/../dpath/report/{report_id}/image/{image_name}'.replace('\\', '/')
+
def __save_local_file(self, file):
file_name = 'reportimage123.png'
new_file = open(SAVE_DIRECTORY + file_name, 'wb')
--
GitLab