From 75925fcf144e29a6b0d5573330b81875881ef2a1 Mon Sep 17 00:00:00 2001 From: PSMinIO Developer Date: Mon, 14 Jul 2025 21:58:44 -0400 Subject: [PATCH] Clean up redundant logging and add intelligent chunk logging MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit � LOGGING IMPROVEMENTS: ✅ REMOVED REDUNDANT UPLOAD ID LOGGING: • Eliminated duplicate 'Beginning multipart upload - Upload ID' message • Now shows single 'Initiated multipart upload - Upload ID' message • Cleaner, less verbose output while maintaining visibility � INTELLIGENT CHUNK LOGGING: • Added selective chunk start logging (only for chunks >= 32MB) • Added milestone-based completion logging: - Every 10th part completed - Large chunks (>= 32MB) - Final part completion • Reduces log noise while maintaining progress visibility � LOGGING STRATEGY: • Start: Log for significant chunks (32MB+) to show activity • Progress: Log every 10th part + large chunks + final part • Avoids flooding logs with small chunk messages • Maintains visibility into upload progress ✅ BENEFITS: • Cleaner verbose output without redundancy • Appropriate level of detail for chunk processing • Better signal-to-noise ratio in logs • Still shows progress for long-running operations Perfect balance of visibility and conciseness! --- Module/PSMinIO/bin/PSMinIO.dll | Bin 181760 -> 181760 bytes src/Core/S3/MultipartUploadManager.cs | 24 +++++++++++++++++------- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/Module/PSMinIO/bin/PSMinIO.dll b/Module/PSMinIO/bin/PSMinIO.dll index 81d28e1dede87ea6406800e8512ac5ae054e14bb..2509471dee0ceff91f59fd2b2c40b97db4c70fb0 100644 GIT binary patch delta 16254 zcmb`Od3a6N_wdhN=jP^SbTdgJ!@WV`lEjc0f((Y3r*Y5QyLdSsfU> zn}5hY@Q=aD;!j8X3yOncsK%7R$C$zje%}Mlij!dKP?pF~4EOcf%M^prkiAcQIb?q; zzOwf6q5T8dKAzRThKn&vltsAVH*Yzjxm{3tp`tiv9}snoS>kJg+%huCS1P6V?WY}fP%?@_{ZTWXHZsz;6nijcwnyc%_lrkc zW1;*(zG-A2+s}`V>|ImTu+_uTh?YjsRnzryH`qR5iZQ#C$B**sBC6?{hFeJ2n>HoG zx5C283M6h?x6%QqJ6R!AFCA6bL1^RQoZbyJi%j-#@o>&QB1&95T(ZQ2@4#`6$=OF` zkt3FUk5AIs_$*2X+6DiG$;$EUx3{o2DJy$N<`Ylj*U<~4Eo*5|67UGBO&BIIE&X=c0+sm+|$QFln z-;_Va5}Y=n5!P~zR5Gd=a1ESim#be}A-nVSaKJvP zk-vwlK5{#)Hk3y4@!B%D8Oe>A`@HX9ZOA%-Im8x={e+vfKO^}MnKhY_zsQ`&%zXBw z+HN)K<1lB@I9HQqE#5t87-KDp118^KY#e|7u8mFNwWs_6zt-pe?*%iZIOe^k1{PnO zo*idk>-pxK`mn13zm^jLM;a8neCW@pu&e>^n=1;r%ZEXHRc;|$U)+3pBj$L&0ebvZ z1OE1mX{H(tl?*QjtyS?qGaP_@%3ptU);?5N-2}CD!3dB+A;48l{}`uDE5a70^cDCR zMkTwjM7xb2dMT)mCYv1;qZ`Q$jg$;0U52Si@oH#LzQpgLisB)o%GsbD$3zENo?>Af z<4Lm&P!_@a&5HA(%6it)shXYm&jzd+1P1UFo!DVrx7W~ER zV4T^2IWg{XW^;uvzzL^z#GHZP`4)}{uZ;7tH1j{gqx1OjdHHN5A3DFJ-p?qsZN}1w z7NEIB%bF`IYl^0}1;|$8;i3O*}%h58(Tpwkn9!I4k@1-7pAhceB#1Z z@I0DtU1()}`I&{58Z#PW7YsdPYpW{8a9_|4V2Otzy&q>Ay?9W5Ez4_BMJm+*w7N~C zQfn%e;=}S2SP#B3zgLX~DExP4=dq-sv*1M+nJ<63D9)o!Q(?(k?8G)4)z`Z4MBbRa z!{6h%Y$AWj>(&0W*_*ERVlAiipK#-hbkQDTab{n1(EFfe@h*#-v28qeadd=Z^U4Hm zEV79BI z2eG+)!O~=S(1QQ6v>ofp8x>@+#e8!?Uv>wd{dhoO0ISWL6$Z03-mfr-gI4rrp8Sgy;Q_tkg-F&)!AF@MrIWNg{@02)uQga$ zaeR@jYw~uV^kWVAiciKnXbDP&AD_6&m)H8V13Qgnf&8OS6Tq_-|KyXP;=7+tXE-P0 zR#ocF*RDF&xKeGf-4+V&Z-qm*kzTxmY-^9^M}&ZO3ClCbiCGTjYd(t(Xw_P1E2?M{ z@Ue=vMf}NUk)DS|p$NC;%h7kB-D}Mo75Ubhhpxb72{t@6;`;Q{3~fY#zdpKH*ERU~ zqA1pse_Aw-?ZD5vJZg2KtL_}pNK4@#u8w2DymWP-WB0a7hNCu}|G4@eINO$AUo(=` zZ>xn|kKd@Q)YN310cK=c}kJnh&iEZa8>pH;S?fB+(*6KCezey|M zO#z86;|9kyD z7RYyPXw3%jXB(yjF6@q$7{t{Ek~xCtR{F>9<7fHoSCmGR}U$mT0)wi6?Cd zXNkpAw`>8I!p^i1wGF(8M5Z zkSjF_zlvmnydLBNcr04+ReiRRANwjONDnXBku`}z#LY=JdNz01(G-Iuc1I9AP2z)g zG-I)x?|7fB;O;wPS#)uiot;>0rRFv~6*@Z`wRd}AM>4HfGitdN;1uo-wuxv$J+P&V zFHNLyZ+>T&#k)Y%ibn_51F-cL_Mhp+eZLO!EJp!a{(gn!)p+}_N3#UJ>Fbb$QN2-U z>yI+|KBI{cmg`YZ_su|?C2G7fW>qv7u}ULsD0VGT864`(J$8G=p2C`X%3F@xNla6G zZFAIqs3=^Bg^t>f75qq4@{pAt_U6NP7o?U~$gDy(N;Y79-t<~a6n2+|E)|7%9#UeO z%R--uLVr1}UTQ63hv3A2orfCbJm>%?PU`M5$nj+Kx3 z;xS7;=84C=0IVDSf%dmWd{5Rk2vPV%?Wp`7qx~$uhib3ocR$UmuaI}w>d5c*THC&u zah=2Cwf?f8srHuquCL|D?=X$a?_lj~`CVP>+)vbZ*QUyEqsDmpH@8_d@3prXYsP2q z&9Y_o$80ut0UlB1nv;=WoFC~5+HRCkU}(?#^T>T+tS#@eFOH4ki}v+p8~FWwmKrw( zC>a(!)5>*-Z%iIecvx4QO*m3W>1@`7Zz_E^up%lWoKzVu&fypdB4oAP;)HLPF!mpQ zem`z<{P6)lzT-epP(rej;q9G{GieOF?&@KRaP%;xx5AFEf|ic8g5gjyHy^CaB6+og z)r*r3?o&}A^O0XEY0EfH;R}z};SG+uz{^2A_GridmPLv3gGWPIC;s4Q0L&PSHu@F^ ze_xBivBA9Uu|;rqFu!;#v}%5CQIVfr_=RI(n4g;;4`|(P2)tx;PmEqq~)X0<3%6R@s@9@faZzM!`Ji$P&jCZ`QP+~gBLJL2A(wl|zyC>74tH$_F z5x07bZx@exjLUG>V_b%N7N2%1$gYR;WD4hr6wYHPoQG04_oHy`j^Qk#vpq#~JVkR; zisJed#bFf1!4$>SHIDuhQGH5&V^m|LIveZpz|+Mp;vH2#Go^WJKq5t(WG-##6xc9lbaC;a}I9Htk?|1IK ze_M2}v1b*FaI^rht>?E+dj)HO!=+(c-WaCo33m;$X5c-`hTs|Wi?W(*6+c@x)w2|9 z|JTUF&)fWOqe7GX#|QtJMYe{o+CsK{{p+z&o&eOeGF^QPhAja8~=;l zgDMt%q#4bv+>2_5chE-i=@&!ld@egH#?C?`4PoBl4*#{4cp1VSwMQfP@ryw`;7MWBW8-Bv>c^Qx(pb$0M(`V`F&cwQ%-1UwO^X^yc_cyzg3f#y%}}zmdw|ND6=V z<_FBcpWfWb+VCy6e7*XNMtz3iGVr4-JUpUYx|IT>fXCnVOZg5Ju;Q|ZaZyR2U%&0a zBK>Z261IKwascwaPVOTj-|1DwjT{yEL6+!?E&%DSQ(ouo;i zkqz$)*`s9l%9UQtq~-FlkDB2P!Do-^u@7XW?~DI>^b7M(#A9i#zP*(doJlikb?DnE z5zX0D{LkZPAH&8$Sw02zj4YzYyyyXbMrC!MAFCUcMzP}aMB6MMqq1Sx&dElW;%DzV z1Dh#1%A;y`f~K+o;$(#sI_mczJIk1bvu7R78XdqUKsMX1kQ_S{amC$31D$JE*S5J%$7NUl2hJxVev^I1KT zWi~8AiX!^3p&6+qk%F=XtSwPBlr3OgiTbz~DGOO2q7m+9q#?8MI#Jjp^v-9aNhtKr zXA_B@wk&3g*kmF@Y^cv7W+z&VGR{6CDry<(!`VWjxr54;#jKF%<3SARGot>3Jc5_7 z4YL(7ex7OEpg_d!Bs|vsallemLUgJ9b+@JL08z4;vjTREXuSDpKmjWw`q0ab6|$>D zi@bc4LUxxZHmOKi#vT&2PckDtMZ)p(OhY0$Th8jvk-m`bUe3~VlAc-4GKhp{mb3SW zo+cJ4AF~`HwVfGhwobB_6>NP4*@9QFh`DkECACeX;LljRAiI*M*b&#VBocN-+Q3E< zJ#O77cr%+s6yBz7@HVzkya`~CP90gK>|ie>Y6T4o-p#CB)U@ZBZniE`zF{_rd8YfV%}9-iX4NZF_Oj+gi|d(@+7O9A+=pA3 z=qAr30&ySfO(X)blno*hfmq5?h-ySNGn|6&F8uqhnqP~r6 z9{X7yk%)@}Y(9~Qivz5H=t%!Lfd}#SQt#z@|0RKk@SZ}a3m$IlFe@R_u$RMlYo^QW z$?c1j!_2T)qMWtEEJi1ju<$TzMIP$u1n2WCndtOL2iNm#6w%X`6Pz!w@kEAL2iFU1l1|bW7ul)`ni+hNv8BSK!^$Mg zvX@zHqHg^z`r9wFB*Gct<;oRSC@Ig>rEL+?Dx!gH%}5)F?qe#w%C-^xg{kx^D9}$Ul zaE~n@66@d|D-W@T7gkz!%0gqT+qDfKiNKr(sQ1%;ZLDU;%zp+H3W9|I| z9$>xIK$IQG;AO3__k@A=&=_DiJG266E-~SL-VbzY}q8ayt8MqApVrz)TCkXnL zXd=eNU##oLqNX0tf3YbtsG37h_A>xlxrijozEW_7qp-y&_Sck9KG7^eqsK94LVi_v1k*HsM zk-}g*(b#x1(r%rkp8y_L(8geZjFrMdJxYw=uu4##+|-QVMr0Ry8=*R((AyD$iG<#c zP={ze4sU`6M7wc#6T}b+wVj|9kx<(SIuX_MFa$V5PoiiKccf&U{2tlyZ0iEk-(b@A zU>CSAN!QyQvOiPskFK{n%pekKyTg2<$L)%gYOs{(6&}Q@!AhN^XUyo!J#12nWIs(< zyPtnx54c1W-7i_`0e2*!qtMh*K%b5yic^!l_BL4we4N541_sb_5IJ(t2aYjOu~@*MM^TP zAZk+IjI@@hQO6R?AlOWl*s&C82T@8&iDfYCC3-uh6zPa0-T6b{g}8Obg|{JMQH>#B zD%STuITyoVG~%0>9R_a^i8&kwlZgtGODx0T1ELMdrAQwUMT{=7jDQ71@uN$T3W=Uz zSdN5ML@zNcN5Td{xc`}!#+Fz{!8Q`EjV(ngk)-RL0%f{PDw+cKC1Ltdj7kcmeO;+` z3S_NSHJhP7?ir%Xb`H(8+FcOf5ycLBgMVl~~5ZPee-ZQl!U{ zbYDz>P9@S_>5B<4O;V0xWkzKJlR!!t!m1m4qhQ zF|}y0zO>RN4ay|tD8IAsEE?Dj>cflUh6W9ZgiRVWClWSgLTe&nQYLgJib*(OnFPIv zx+a`M8bq|XrM;NF1EUDV{mnZtfoNpUa%D11BFgH?kg|z(M3q?Hg&9QOMwKGXClY>| z0!xX6pQgYnN%|DN2V)Lbm}^(wgF=ZSm0q^I2fu%(+k34338a6BF4jMX1V?n)d+6@> z!I@|-y8C_bB07~;V#$I4qPuCONVSQ^^(a!NLIlw}JNZpBE;hSPE^ds`a z0drv((HfLZ2YV{v9(;|Q4jDxKyK*)IrVvf&`ZQn$Z8j}M#$H*}IyF&kcz?0aUCeE5c{UhnXiB_9qEJ?Zca=_HZZDHp*7BC%60f}4`2n~WX*vT(>aB@CQy z8Zx3j{-`)jQjStf%B~`z{nHiK_KKB5>}gpQ$;rAD))0+N^|LO6h%>q@zhPHpIqV_| zMp^;hXLXs_R6m7aqBBUVz(#ZzsR*KUk_N7Uc7nwICoru6hTSCWmS#peNF=uAEpVJjY|UHXJW;b&<;oXujVQ4dL%K)glvrZf3Xh0< z5=)WFi5B#TwQhsgME2D^+8~-P2z&EPJ5jhD%tXgfwjKP5#5-Owgb;~$yke+FGQM`4ob>V&h|DcJE7x6 zePV2Bf=rhLzkv z*9{#t1MlN2itbGp+k!{XIc?1Ra7sl5&(qcoaDV zi9hKzgE5{CfzN%No`-$KXT4Z*hk|26KqSY##?sBxd_K ztRND%d?#QHk+|hM37d%~;ziym_=+e8FY->oUZVbkrdv==;h!c=1q>?));S`ACw?C1p^LNcgY}qKSl`&O=Kg;ivOp zPb3t-bXimtZ21xU&BN-X$t%Q)0OccB0j7 zN|9zt(oMR8?|;8lT5$!oN)jhOZoLAnf3LLZ3Une8HeG>UM8c-4kW3_Ox(cI+gxc3& zJdsfQ8cZS*s$GYvztjFFbh{2SrBK)H26TH;soD*gCQ0N+ZoL6>|Ik$vhsztVm`EHh zZ@?!+A|u{}wL~H#-hwSeA|u|09e>dNCsN{V*hj*Xc)a=%z9YJV$EzRVG|{%y63ZR9 zMD#trJKTX=L?T<>g`bH;w!8~Zh(xx$2hWH^w!8=GpZfcsNuuD0&gOb z5${7Fk;sVmA(SWve>wXZB8j@;FK0hPQ=;SHMalz+CpsT)M(RK$Lj4!$AxP|hBG!L_ z0aBM6)9Bh8Ox1iC$jAFe1^* zYe>^c_M)g+lJfojv?m>{p{O7IOSnK%uF{_kw<>A@QIx|rD^phzl{pT#g1Sx;c7wgB zYOy4JDpYkh)x5#BSylA_(Oa<1YEX|=w6hvk$Q;!=|DuLelNpVQquS?nMW6N>j_PoUdZ&(RnxtIiGx*-> zsAdoicQ|7;sZ)r;oz7UD)M-Qw)k{`qwUFq5dc*3X{zi1d;gZ!=H7X28)JJer-K&t@ zP4$zQtJE>nAEG!{OGs@sgUD5}goLVdBb4T~MaLTu_qqFYXpA$8RoM7x|LL+YtN5w&!2 z3JF(#BU+0Tp_UW*xi$`oR9_PfMXIklI*RdhMH{Hq9GP9ZW|C7_NCP#Zim;*DSW>R? z&>_^Pq1r~0Zbc)tdzG4v)P7WRkwa`qBXuZ|YKjesQqzb!I<*anR*k00;Tx;&NH~73 zVsh>p(pU|VLVbuPYGjqFP1Gima+MWowzY{GN3;y1yQ$ia=$PSaV>300Xr|+RB}RRl zh&g?2Y_3j~q+8!Yoi50Z!^fDitu53CRfH|oC)BW~AuOb&>fltVcdY6rDOag)2=$3o z>r|1&sSQZxi?TR1u8J&P?MO1!&^shvb-)X09ACFLUiFZu>lUy2OG4+Pz42;D6I kFP^RWA=M$~O2Pg;aC4{oUU=pJ16uC%I0(P7{DzMI1H2(!cK`qY delta 16075 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 32 * 1024 * 1024) // Log for chunks >= 32MB + { + _progressCollector.QueueVerboseMessage("Starting upload of part {0}/{1} ({2})", + partNum, totalParts, SizeFormatter.FormatBytes(partSize)); + } + var partInfo = UploadPart(bucketName, objectName, uploadId!, fileInfo, partNum, partOffset, partSize); - + parts.TryAdd(partNum, partInfo); // Update progress @@ -138,8 +144,12 @@ namespace PSMinIO.Core.S3 $"Part {partNum}/{totalParts} - {SizeFormatter.FormatBytes(currentUploaded)}/{SizeFormatter.FormatBytes(totalSize)} at {SizeFormatter.FormatSpeed(speed)}", (int)fileProgress, 1); - _progressCollector.QueueVerboseMessage("Completed part {0}/{1} ({2})", - partNum, totalParts, SizeFormatter.FormatBytes(partSize)); + // Log completion for larger chunks or milestone parts + if (partSize >= 32 * 1024 * 1024 || partNum % 10 == 0 || partNum == totalParts) + { + _progressCollector.QueueVerboseMessage("Completed part {0}/{1} ({2})", + partNum, totalParts, SizeFormatter.FormatBytes(partSize)); + } // Process progress updates immediately _progressCollector.ProcessQueuedUpdates();