KamoCRM

Związują i struż ścieżki obrazowania byte-ciężki

PerformanceDocsService
Szycy
23 września 2026 02:35 UTC
Autor
Kamo
Pochęt się
d1a8762

/pobierz załadował cały plik do bajtu[] za pośrednictwem ImageService.downloadDocument przed serwowanie; /bulk-download zbudował cały ZIP (lub połączył plik PDF) jako jeden bajt[] w DocumentPrepareService przed udzieleniem odpowiedzi; przesłane są uruchamiane do 3 GB w stosunku do 1,4 GB tej usługi Hę, i /bulk-down cap 100-by-by nie miały limitu rozmiaru za nim - 100 nieogranych dokumentów mogło Poproś o setki gigabajtów w jednym wniosku. buildZip napisał również Img.fileName prosto do ZipEntry bez dezynfekcji, więc dokument zmienił nazwę na coś takiego (fileName jest sterowany przez użytkownika — tekst wolny, zmieniony przez /update/filename/'imgId') wyprodukował archiwum, którego wpis, otwarty przez ekstraktora, który nie Sam rówieśl się przed ślizgiem błyskawicznym, pisze poza katalogiem docelowym na temat tego, którykolwiek z OS robi Ekstrakcja. - /pobierz teraz strumieniowo za pośrednictwem MinIOStorageService.openRange + StreamingResponseBody, dokładnie tak: /stream już to zrobił, zamiast buforować cały plik. (Drops ImageService.downloadDocument's dl-first/dl-lastowy efekt uboczny księgowości – potwierdzony martwy przez grep: nic w zapleczu Javy Zawsze czyta Img.dlFirstDate/dlLastDate, tylko je pisze. Oddzielny audyt ImgLogPobierz wiersz przez recordDownloadWydarzenie, które JEST odczytane przez panelhistoria pobierania, pozostaje niezmienione.) - /load dedupes zażądał ids przed 100-id cap i pracą na jeden nakaz. - /loadk-download odrzuca od razu (400) po przejściu przez wybrane dokumenty włączone pliki Img.fileSize 500 MB, zamiast próbować scalić/zepla i ryzykować OOM – odmówił, a nie po cichu Skrócony, ponieważ kompletność jest punktem masowej EXPORT. - buildZip dezynfekuje każdą nazwę wjazdową do swojego segmentu ścieżki końcowej (rozpowszechnianie zarówno /, jak i , ponieważ Ekstraktor może być w systemie operacyjnym, którego ten serwer nie kontroluje, zamykając lukę zip-slip. NIE DONE, zgłoszony jako znana luka: buildZip/mergePdfs nadal budują swój wynik jako jeden bajt[] Zanim odpowiesz, zamiast przesyłać strumieniowo bezpośrednio do odpowiedzi HTTP — kapsla 500 MB teraz Ogranicza to do znanego sufitu (w dół od nieograniczonego), ale nie jest on eliminowany. Przekształcenie ich w Zapisz w przypadku OutputStream zaopatrzony w callera również zapobiegłby /bępielowemu strumieniowi; odroczonemu, ponieważ to zmiany podpisów publicznych DocumentPrepareService, falując do trzech istniejących plików testowych (pomocy obecnie stubną byte[]-powtórne metody), dla MEDIUM-szerzyczność, już zwartą Pozostała część – celowe wezwanie, a nie niedopatrzenie. Nowe testy: 7 przypadków do dezynfekcjiZaipopenName) i trzy przypadki Dodano do ImagingControllerMediaAssocTest (streaming-not-buffering, id dedupe, rozmiar cap). Sprawdzone mutacje: powrót ImagingController.java do stanu przedrostkowego zmienia trzy nowe Sterownik ma czerwone; przywracając dezynfezjęZaipEntryName na "nazwa zwrotu";" obraca 5 z 7 poślizgu zip Sprawy czerwone (szósty, już bezpieczna zwykła nazwa, jest poprawnie nienaruszona w żaden sposób). Pełny pakiet: 741 testów zielony (było 731; +10 nowy).

Wszystkie zmiany

Jak to, co widzisz żeglugę?

Wszystko to pojawia się w twoim miejscu pracy na własną rękę. Zacznij od bezpłatnego planu i przeczytaj tę stronę ponownie w miesiącu.

Start Free ForeverZobacz ceny