@@ -293,6 +293,7 @@ impl SendQueue {
293
293
294
294
/// Metadata about a thumbnail needed when pushing media uploads to the send
295
295
/// queue.
296
+ #[ derive( Clone , Debug ) ]
296
297
struct QueueThumbnailInfo {
297
298
/// Metadata about the thumbnail needed when finishing a media upload.
298
299
finish_upload_thumbnail_info : FinishUploadThumbnailInfo ,
@@ -607,7 +608,7 @@ impl RoomSendQueue {
607
608
match & queued_request. kind {
608
609
QueuedRequestKind :: MediaUpload { accumulated, .. } => accumulated. len( ) as u64 ,
609
610
_ => default_index,
610
- } ;
611
+ }
611
612
} else {
612
613
default_index
613
614
}
@@ -1401,8 +1402,13 @@ impl QueueStorage {
1401
1402
return Ok ( ( ) ) ;
1402
1403
} ;
1403
1404
1404
- let GalleryItemQueueInfo { content_type, upload_file_txn, file_media_request, thumbnail } =
1405
- first;
1405
+ let GalleryItemQueueInfo {
1406
+ content_type,
1407
+ upload_file_txn,
1408
+ file_media_request,
1409
+ file_size,
1410
+ thumbnail,
1411
+ } = first;
1406
1412
1407
1413
let thumbnail_info = self
1408
1414
. push_thumbnail_and_media_uploads (
@@ -1412,6 +1418,7 @@ impl QueueStorage {
1412
1418
created_at,
1413
1419
upload_file_txn. clone ( ) ,
1414
1420
file_media_request. clone ( ) ,
1421
+ * file_size,
1415
1422
thumbnail. clone ( ) ,
1416
1423
)
1417
1424
. await ?;
@@ -1426,39 +1433,45 @@ impl QueueStorage {
1426
1433
content_type,
1427
1434
upload_file_txn,
1428
1435
file_media_request,
1436
+ file_size,
1429
1437
thumbnail,
1430
1438
} = item_queue_info;
1431
1439
1432
- let thumbnail_info =
1433
- if let Some ( ( thumbnail_info, thumbnail_media_request, thumbnail_content_type) ) =
1434
- thumbnail
1435
- {
1436
- let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1440
+ let thumbnail_info = if let Some ( QueueThumbnailInfo {
1441
+ finish_upload_thumbnail_info : thumbnail_info,
1442
+ media_request_parameters : thumbnail_media_request,
1443
+ content_type : thumbnail_content_type,
1444
+ file_size : thumbnail_file_size,
1445
+ } ) = thumbnail
1446
+ {
1447
+ let upload_thumbnail_txn = thumbnail_info. txn . clone ( ) ;
1437
1448
1438
- // Save the thumbnail upload request as a dependent request of the last file
1439
- // upload.
1440
- store
1441
- . save_dependent_queued_request (
1442
- & self . room_id ,
1443
- & last_upload_file_txn,
1444
- upload_thumbnail_txn. clone ( ) . into ( ) ,
1445
- created_at,
1446
- DependentQueuedRequestKind :: UploadFileOrThumbnail {
1447
- content_type : thumbnail_content_type. to_string ( ) ,
1448
- cache_key : thumbnail_media_request. clone ( ) ,
1449
- related_to : send_event_txn. clone ( ) ,
1450
- parent_is_thumbnail_upload : false ,
1451
- is_thumbnail : true ,
1452
- } ,
1453
- )
1454
- . await ?;
1449
+ // Save the thumbnail upload request as a dependent request of the last file
1450
+ // upload.
1451
+ store
1452
+ . save_dependent_queued_request (
1453
+ & self . room_id ,
1454
+ & last_upload_file_txn,
1455
+ upload_thumbnail_txn. clone ( ) . into ( ) ,
1456
+ created_at,
1457
+ DependentQueuedRequestKind :: UploadFileOrThumbnail {
1458
+ content_type : thumbnail_content_type. to_string ( ) ,
1459
+ cache_key : thumbnail_media_request. clone ( ) ,
1460
+ related_to : send_event_txn. clone ( ) ,
1461
+ parent_is_thumbnail_upload : false ,
1462
+ file_size : * thumbnail_file_size,
1463
+ thumbnail_file_size : None ,
1464
+ media_file_size : Some ( * file_size) ,
1465
+ } ,
1466
+ )
1467
+ . await ?;
1455
1468
1456
- last_upload_file_txn = upload_thumbnail_txn;
1469
+ last_upload_file_txn = upload_thumbnail_txn;
1457
1470
1458
- Some ( thumbnail_info)
1459
- } else {
1460
- None
1461
- } ;
1471
+ Some ( thumbnail_info)
1472
+ } else {
1473
+ None
1474
+ } ;
1462
1475
1463
1476
// Save the file upload as a dependent request of the previous upload.
1464
1477
store
@@ -1472,7 +1485,9 @@ impl QueueStorage {
1472
1485
cache_key : file_media_request. clone ( ) ,
1473
1486
related_to : send_event_txn. clone ( ) ,
1474
1487
parent_is_thumbnail_upload : thumbnail. is_some ( ) ,
1475
- is_thumbnail : false ,
1488
+ file_size : * file_size,
1489
+ thumbnail_file_size : thumbnail. as_ref ( ) . map ( |t| t. file_size ) ,
1490
+ media_file_size : None ,
1476
1491
} ,
1477
1492
)
1478
1493
. await ?;
@@ -2133,7 +2148,8 @@ struct GalleryItemQueueInfo {
2133
2148
content_type : Mime ,
2134
2149
upload_file_txn : OwnedTransactionId ,
2135
2150
file_media_request : MediaRequestParameters ,
2136
- thumbnail : Option < ( FinishUploadThumbnailInfo , MediaRequestParameters , Mime ) > ,
2151
+ file_size : usize ,
2152
+ thumbnail : Option < QueueThumbnailInfo > ,
2137
2153
}
2138
2154
2139
2155
/// The content of a local echo.
0 commit comments