feat(plugin): add error handling for file upload
This commit is contained in:
parent
2416ebd7ab
commit
87a25eb262
@ -18,6 +18,7 @@ import asyncio
|
||||
import atexit
|
||||
import logging
|
||||
from enum import Enum
|
||||
from urllib.parse import quote
|
||||
|
||||
api = None
|
||||
api_task = None
|
||||
@ -200,7 +201,7 @@ def update_run(prompt_id, status: Status):
|
||||
requests.post(status_endpoint, json=body)
|
||||
|
||||
|
||||
async def upload_file(prompt_id, filename, subfolder=None):
|
||||
async def upload_file(prompt_id, filename, subfolder=None, type="image/png"):
|
||||
"""
|
||||
Uploads file to S3 bucket using S3 client object
|
||||
:return: None
|
||||
@ -230,9 +231,15 @@ async def upload_file(prompt_id, filename, subfolder=None):
|
||||
|
||||
file_upload_endpoint = prompt_metadata[prompt_id]['file_upload_endpoint']
|
||||
|
||||
content_type = "image/png"
|
||||
content_type = type
|
||||
|
||||
result = requests.get(f"{file_upload_endpoint}?file_name={filename}&run_id={prompt_id}&type={content_type}")
|
||||
filename = quote(filename)
|
||||
prompt_id = quote(prompt_id)
|
||||
content_type = quote(content_type)
|
||||
|
||||
target_url = f"{file_upload_endpoint}?file_name={filename}&run_id={prompt_id}&type={content_type}"
|
||||
|
||||
result = requests.get(target_url)
|
||||
ok = result.json()
|
||||
|
||||
with open(file, 'rb') as f:
|
||||
@ -249,14 +256,29 @@ async def update_run_with_output(prompt_id, data):
|
||||
if prompt_id in prompt_metadata:
|
||||
status_endpoint = prompt_metadata[prompt_id]['status_endpoint']
|
||||
|
||||
images = data.get('images', [])
|
||||
for image in images:
|
||||
await upload_file(prompt_id, image.get("filename"), subfolder=image.get("subfolder"))
|
||||
|
||||
body = {
|
||||
"run_id": prompt_id,
|
||||
"output_data": data
|
||||
}
|
||||
|
||||
try:
|
||||
images = data.get('images', [])
|
||||
for image in images:
|
||||
await upload_file(prompt_id, image.get("filename"), subfolder=image.get("subfolder"), type=image.get("type", "image/png"))
|
||||
except Exception as e:
|
||||
error_type = type(e).__name__
|
||||
stack_trace = traceback.format_exc().strip()
|
||||
body = {
|
||||
"run_id": prompt_id,
|
||||
"output_data": {
|
||||
"type": error_type,
|
||||
"message": str(e),
|
||||
"stack_trace": stack_trace
|
||||
}
|
||||
}
|
||||
print(body)
|
||||
print(f"Error occurred while uploading file: {e}")
|
||||
|
||||
requests.post(status_endpoint, json=body)
|
||||
|
||||
await send('outputs_uploaded', {
|
||||
|
Loading…
x
Reference in New Issue
Block a user