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 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)
|
||||||
|
|||||||
Reference in New Issue
Block a user