From dbe5d225ef6970aa183467f8a0b48459cfc1191f Mon Sep 17 00:00:00 2001 From: Brandon Thomas Date: Tue, 17 Mar 2026 20:43:18 -0400 Subject: [PATCH] cleanup --- .../src/job/process_single_media_file.rs | 68 +++++++++++-------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/crates/service/job/video_thumbnail_job/src/job/process_single_media_file.rs b/crates/service/job/video_thumbnail_job/src/job/process_single_media_file.rs index 8d28bad352..346c2e0102 100644 --- a/crates/service/job/video_thumbnail_job/src/job/process_single_media_file.rs +++ b/crates/service/job/video_thumbnail_job/src/job/process_single_media_file.rs @@ -1,3 +1,5 @@ +use std::path::PathBuf; + use log::info; use bucket_paths::legacy::typified_paths::public::media_files::bucket_file_path::MediaFileBucketPath; @@ -10,35 +12,7 @@ pub async fn process_single_media_file( deps: &JobDependencies, media_file: &VideoMediaFileWithoutThumbnail, ) -> anyhow::Result<()> { - // Reconstruct the bucket object path from the media file record. - let bucket_path = MediaFileBucketPath::from_object_hash( - &media_file.public_bucket_directory_hash, - media_file.maybe_public_bucket_prefix.as_deref(), - media_file.maybe_public_bucket_extension.as_deref(), - ); - - let object_path = bucket_path.get_full_object_path_str(); - - info!( - "Downloading video for media file {} from bucket path: {}", - media_file.token.as_str(), - object_path, - ); - - // Download the video to a temp file. - let video_extension = media_file - .maybe_public_bucket_extension - .as_deref() - .unwrap_or(".mp4"); - - let temp_video_path = deps.temp_dir.join( - format!("video_thumbnail_{}{}", media_file.token.as_str(), video_extension), - ); - - deps - .public_bucket_client - .download_file_to_disk(object_path, &temp_video_path) - .await?; + let temp_video_path = download_video(deps, media_file).await?; info!( "Downloaded video to {:?}. Generating thumbnails for {}.", @@ -57,3 +31,39 @@ pub async fn process_single_media_file( Ok(()) } } + +/// Download the source video from the public bucket to a local temp file. +async fn download_video( + deps: &JobDependencies, + media_file: &VideoMediaFileWithoutThumbnail, +) -> anyhow::Result { + let bucket_path = MediaFileBucketPath::from_object_hash( + &media_file.public_bucket_directory_hash, + media_file.maybe_public_bucket_prefix.as_deref(), + media_file.maybe_public_bucket_extension.as_deref(), + ); + + let object_path = bucket_path.get_full_object_path_str(); + + info!( + "Downloading video for media file {} from bucket path: {}", + media_file.token.as_str(), + object_path, + ); + + let video_extension = media_file + .maybe_public_bucket_extension + .as_deref() + .unwrap_or(".mp4"); + + let temp_video_path = deps.temp_dir.join( + format!("video_thumbnail_{}{}", media_file.token.as_str(), video_extension), + ); + + deps + .public_bucket_client + .download_file_to_disk(object_path, &temp_video_path) + .await?; + + Ok(temp_video_path) +}