fix type mismatch & minio deletion procedure
This commit is contained in:
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user