more multi-tenancy

This commit is contained in:
2025-10-23 16:06:56 +02:00
parent e175d28c2c
commit 0ad79c9bc1
35 changed files with 1229 additions and 534 deletions
+12 -8
View File
@@ -19,6 +19,7 @@ use crate::{
},
schema::{document_asset_objects, document_assets, document_versions, documents},
state::AppState,
storage::TenantStorage,
utils::storage_paths::document_asset_object_key,
};
@@ -53,7 +54,12 @@ impl JobHandler for GenerateThumbnailsJob {
JOB_GENERATE_THUMBNAILS
}
async fn handle(&self, state: Arc<AppState>, job: crate::models::Job) -> JobExecution {
async fn handle(
&self,
state: Arc<AppState>,
job: crate::models::Job,
storage: TenantStorage,
) -> JobExecution {
let payload: ThumbnailPayload = match serde_json::from_value(job.payload.clone()) {
Ok(p) => p,
Err(err) => {
@@ -89,7 +95,7 @@ impl JobHandler for GenerateThumbnailsJob {
return JobExecution::Success;
}
let bytes = match state.storage.get_object(&initial.version.s3_key).await {
let bytes = match storage.get_object(&initial.version.s3_key).await {
Ok(bytes) => bytes,
Err(err) => {
warn!(job_id = %job.id, error = %err, "thumbnail fetch failed; will retry");
@@ -148,7 +154,7 @@ impl JobHandler for GenerateThumbnailsJob {
if initial.existing_preview.is_some() {
for object in &initial.existing_preview_objects {
if let Err(err) = state.storage.delete_object(&object.s3_key).await {
if let Err(err) = storage.delete_object(&object.s3_key).await {
warn!(
job_id = %job.id,
error = %err,
@@ -161,7 +167,7 @@ impl JobHandler for GenerateThumbnailsJob {
if initial.existing_thumbnail.is_some() {
for object in &initial.existing_thumbnail_objects {
if let Err(err) = state.storage.delete_object(&object.s3_key).await {
if let Err(err) = storage.delete_object(&object.s3_key).await {
warn!(
job_id = %job.id,
error = %err,
@@ -193,8 +199,7 @@ impl JobHandler for GenerateThumbnailsJob {
ordinal,
);
if let Err(err) = state
.storage
if let Err(err) = storage
.put_object(
&s3_key,
image.image_bytes.clone(),
@@ -235,8 +240,7 @@ impl JobHandler for GenerateThumbnailsJob {
ordinal,
);
if let Err(err) = state
.storage
if let Err(err) = storage
.put_object(
&s3_key,
image.image_bytes.clone(),