|
1 | 1 | from __future__ import annotations |
2 | 2 |
|
| 3 | +import logging |
3 | 4 | import posixpath |
4 | 5 | from dataclasses import dataclass |
5 | 6 |
|
@@ -102,14 +103,30 @@ def email_images(request: HttpRequest) -> HttpResponse: |
102 | 103 | messages.error(request, f"{filename}: invalid upload path.") |
103 | 104 | continue |
104 | 105 |
|
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: |
106 | 114 | if not overwrite: |
107 | 115 | messages.error(request, f"{filename}: already exists (enable overwrite to replace it).") |
108 | 116 | 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 |
110 | 123 |
|
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.") |
113 | 130 |
|
114 | 131 | if uploaded: |
115 | 132 | messages.success(request, f"Uploaded {uploaded} image{'s' if uploaded != 1 else ''}.") |
@@ -149,8 +166,9 @@ def email_images(request: HttpRequest) -> HttpResponse: |
149 | 166 | modified_at=modified_at, |
150 | 167 | ) |
151 | 168 | ) |
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") |
154 | 172 |
|
155 | 173 | return render( |
156 | 174 | request, |
|
0 commit comments