fix type mismatch & minio deletion procedure

This commit is contained in:
2026-03-26 22:41:23 -07:00
parent 516a2a107e
commit 26452aa57c
2 changed files with 15 additions and 3 deletions
@@ -6,6 +6,7 @@ from dataclasses import dataclass, field
from datetime import datetime, timezone from datetime import datetime, timezone
from pathlib import Path from pathlib import Path
from typing import Any from typing import Any
from officeconvertapi.v1 import conversion_pb2
def utc_now() -> datetime: def utc_now() -> datetime:
"""Return the current UTC timestamp with timezone information.""" """Return the current UTC timestamp with timezone information."""
@@ -20,7 +21,7 @@ class ConversionSession:
source_filename: str source_filename: str
bucket_name: str bucket_name: str
upload_object_key: str upload_object_key: str
status: int status: conversion_pb2.ConversionStatus
created_at: datetime = field(default_factory=utc_now) created_at: datetime = field(default_factory=utc_now)
updated_at: datetime = field(default_factory=utc_now) updated_at: datetime = field(default_factory=utc_now)
error_message: str = "" error_message: str = ""
@@ -71,13 +71,24 @@ class S3Store:
"""Remove all objects in a bucket and then delete the bucket.""" """Remove all objects in a bucket and then delete the bucket."""
objects = list(self._client.list_objects(bucket_name, recursive=True)) objects = list(self._client.list_objects(bucket_name, recursive=True))
if objects: if objects:
delete_requests: list[DeleteObject] = []
for obj in objects:
object_name = obj.object_name
if object_name is None:
raise RuntimeError(
"encountered unnamed object while removing bucket contents"
)
delete_requests.append(DeleteObject(object_name))
errors = self._client.remove_objects( errors = self._client.remove_objects(
bucket_name, bucket_name,
[DeleteObject(obj.object_name) for obj in objects], delete_requests,
) )
for err in errors: for err in errors:
object_name = err.name or "<unknown>"
message = err.message or err.code
raise RuntimeError( raise RuntimeError(
f"failed to delete object {err.object_name}: {err.message}" f"failed to delete object {object_name}: {message}"
) )
try: try:
self._client.remove_bucket(bucket_name) self._client.remove_bucket(bucket_name)