feat: serve derivative files via GET /assets/{id}/derivatives/{profile}
- ReadDerivativeHandler queries DerivativeRepository + FileStoragePort - Profile URL param: thumbnail, thumbnail_large, web_optimized, video_sd - Immutable cache headers (derivatives don't change once generated) - Wired into bootstrap catalog service builder
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use adapters_postgres::{
|
||||
PgPool, PostgresAssetMetadataRepository, PostgresAssetRepository, PostgresDuplicateRepository,
|
||||
PostgresIngestTransaction,
|
||||
PgPool, PostgresAssetMetadataRepository, PostgresAssetRepository, PostgresDerivativeRepository,
|
||||
PostgresDuplicateRepository, PostgresIngestTransaction,
|
||||
};
|
||||
use adapters_storage::LocalFileStorage;
|
||||
use application::catalog::{
|
||||
GetAssetHandler, GetTimelineHandler, ReadAssetFileHandler, RegisterAssetHandler,
|
||||
UpdateMetadataHandler,
|
||||
GetAssetHandler, GetTimelineHandler, ReadAssetFileHandler, ReadDerivativeHandler,
|
||||
RegisterAssetHandler, UpdateMetadataHandler,
|
||||
};
|
||||
use application::storage::IngestAssetHandler;
|
||||
use domain::ports::EventPublisher;
|
||||
@@ -23,6 +23,7 @@ pub fn build(
|
||||
) -> CatalogHandlers {
|
||||
let asset_repo = Arc::new(PostgresAssetRepository::new(pool.clone()));
|
||||
let metadata_repo = Arc::new(PostgresAssetMetadataRepository::new(pool.clone()));
|
||||
let derivative_repo = Arc::new(PostgresDerivativeRepository::new(pool.clone()));
|
||||
let duplicate_repo = Arc::new(PostgresDuplicateRepository::new(pool.clone()));
|
||||
let ingest_tx = Arc::new(PostgresIngestTransaction::new(pool.clone()));
|
||||
|
||||
@@ -49,7 +50,12 @@ pub fn build(
|
||||
event_publisher.clone(),
|
||||
));
|
||||
|
||||
let read_asset_file = Arc::new(ReadAssetFileHandler::new(asset_repo.clone(), file_storage));
|
||||
let read_asset_file = Arc::new(ReadAssetFileHandler::new(
|
||||
asset_repo.clone(),
|
||||
file_storage.clone(),
|
||||
));
|
||||
|
||||
let read_derivative = Arc::new(ReadDerivativeHandler::new(derivative_repo, file_storage));
|
||||
|
||||
let register_asset = Arc::new(RegisterAssetHandler::new(
|
||||
asset_repo,
|
||||
@@ -63,6 +69,7 @@ pub fn build(
|
||||
get_timeline,
|
||||
update_metadata,
|
||||
read_asset_file,
|
||||
read_derivative,
|
||||
register_asset,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user