Skip to content

Commit 281a86e

Browse files
committed
Handle upload errors correctly
1 parent 95fd05d commit 281a86e

File tree

1 file changed

+24
-6
lines changed

1 file changed

+24
-6
lines changed

astra_app/core/views_mail_images.py

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import annotations
22

3+
import logging
34
import posixpath
45
from dataclasses import dataclass
56

@@ -102,14 +103,30 @@ def email_images(request: HttpRequest) -> HttpResponse:
102103
messages.error(request, f"{filename}: invalid upload path.")
103104
continue
104105

105-
if default_storage.exists(key):
106+
try:
107+
key_exists = default_storage.exists(key)
108+
except Exception as e:
109+
logging.exception(f"Failed to check if file exists for {filename}: {e}")
110+
messages.error(request, f"{filename}: failed to check if file exists.")
111+
continue
112+
113+
if key_exists:
106114
if not overwrite:
107115
messages.error(request, f"{filename}: already exists (enable overwrite to replace it).")
108116
continue
109-
default_storage.delete(key)
117+
try:
118+
default_storage.delete(key)
119+
except Exception as e:
120+
logging.exception(f"Failed to delete existing file {filename}: {e}")
121+
messages.error(request, f"{filename}: failed to delete existing file.")
122+
continue
110123

111-
default_storage.save(key, f)
112-
uploaded += 1
124+
try:
125+
default_storage.save(key, f)
126+
uploaded += 1
127+
except Exception as e:
128+
logging.exception(f"Failed to upload image {filename}: {e}")
129+
messages.error(request, f"{filename}: failed to upload.")
113130

114131
if uploaded:
115132
messages.success(request, f"Uploaded {uploaded} image{'s' if uploaded != 1 else ''}.")
@@ -149,8 +166,9 @@ def email_images(request: HttpRequest) -> HttpResponse:
149166
modified_at=modified_at,
150167
)
151168
)
152-
except Exception:
153-
messages.error(request, "Unable to list mail images.")
169+
except Exception as e:
170+
logging.exception(f"Failed to list mail images: {e}")
171+
messages.error(request, "Unable to list mail images")
154172

155173
return render(
156174
request,

0 commit comments

Comments
 (0)