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 pathlib import Path
from typing import Any
from officeconvertapi.v1 import conversion_pb2
def utc_now() -> datetime:
"""Return the current UTC timestamp with timezone information."""
@@ -20,7 +21,7 @@ class ConversionSession:
source_filename: str
bucket_name: str
upload_object_key: str
status: int
status: conversion_pb2.ConversionStatus
created_at: datetime = field(default_factory=utc_now)
updated_at: datetime = field(default_factory=utc_now)
error_message: str = ""
@@ -71,13 +71,24 @@ class S3Store:
"""Remove all objects in a bucket and then delete the bucket."""
objects = list(self._client.list_objects(bucket_name, recursive=True))
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(
bucket_name,
[DeleteObject(obj.object_name) for obj in objects],
delete_requests,
)
for err in errors:
object_name = err.name or "<unknown>"
message = err.message or err.code
raise RuntimeError(
f"failed to delete object {err.object_name}: {err.message}"
f"failed to delete object {object_name}: {message}"
)
try:
self._client.remove_bucket(bucket_name)