Skip to content

Commit e9b80cd

Browse files
authored
Fix 404 on S3 put (#651)
1 parent 570d04d commit e9b80cd

File tree

2 files changed

+10
-4
lines changed

2 files changed

+10
-4
lines changed

gramps_webapi/api/resources/file.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,10 @@ def put(self, args: Dict, handle: str) -> Response:
111111
HTTPStatus.CONFLICT, "Uploaded file has the wrong checksum"
112112
)
113113
# we're updating an existing file
114-
size_old = file_handler.get_file_size()
114+
try:
115+
size_old = file_handler.get_file_size()
116+
except FileNotFoundError:
117+
size_old = 0
115118
size_delta = size - size_old
116119
if size_delta > 0:
117120
check_quota_media(to_add=size_delta)

gramps_webapi/api/s3.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -121,9 +121,12 @@ def file_exists(self) -> bool:
121121

122122
def get_file_size(self) -> int:
123123
"""Return the file size in bytes."""
124-
response = self.client.head_object(
125-
Bucket=self.bucket_name, Key=self.object_name
126-
)
124+
try:
125+
response = self.client.head_object(
126+
Bucket=self.bucket_name, Key=self.object_name
127+
)
128+
except ClientError as exc:
129+
raise FileNotFoundError from exc
127130
file_size = response["ContentLength"]
128131
return file_size
129132

0 commit comments

Comments
 (0)