JDownloader Community - Appwork GmbH
 

Reply
 
Thread Tools Display Modes
  #1  
Old 07.08.2022, 15:42
StefanM's Avatar
StefanM StefanM is offline
JD VIP
 
Join Date: Oct 2020
Posts: 390
Default FRAGE zur Erkennung unvollständiger Archive

JD meldet beim Versuch, Dateien aus einem Multipart-Archiv (*.rar, *.7z) zur Download-Liste hinzuzufügen, wenn Parts fehlen.

Frage 1:
Wie erkennt JD, dass Teile fehlen?
Oder - anders gefragt - erkennt JD auch dann fehlende Parts, wenn z.B. nur der letzte Teil fehlt?

z.B.
  • file.7z.001
  • file.7z.002
  • file.7z.003
Wird erkannt, wenn nur file.7z.003 fehlt?
  • file.part1.rar
  • file.part2.rar
  • file.part3.rar
Wird erkannt, wenn nur file.part3.rar fehlt?


Frage 2:
Kann man die Routine, die fehlende Parts erkennt, auch auf Archive anwenden, die sich auf der Festplatte befinden?
Wenn ja, wie?


Beim Entpacken ist es ja möglich , JD dazu zu verwenden.
Reply With Quote
  #2  
Old 10.08.2022, 19:55
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

@StefanM:
Frage 1:
Im Linkgrabber/wenn noch keine Dateien vorhanden sind, prüft JDownloader lediglich ob das Archiv *Lücken* aufweist. Also zb Part 1 und Part 3, dann fehlt Part 2. Ein fehlender letzter Part kann so nicht *sicher* erkannt werden. Die Erkennung geht jedoch davon aus, das wenn es zb Part 1 gibt, es mind. Part 2 geben muss.
Sofern die Dateien vorhanden sind, wird zumindest bei RAR Archiven geprüft ob der Dateiheader einem Single- oder Multipart- Archiv entspricht.
Beim eigentlichen Entpackvorgang kommt werden dann weitere fehlende Parts durch die Entpackroutinen erkannt und werfen entsprechende Fehler.


Frage 2:
Derzeit nein. Nur durch das Entpacken von lokalen Dateien. Hier könnte man zwar eine Verify Methode ähnlich wie im JDownloader für lokale Dateien einbauen, aber diese müsste das Archiv ebenfalls vollständig (ins Nichts) entpacken um zu wissen ob alle Parts vorhanden sind.

Versuch doch einfach die Archive auf der Platte entsprechend zu entpacken und dann bekommst du ja mit, ob Teile fehlen oder nicht. Oder lagerst du lieber das Archiv selbst statt dem Inhalt?
__________________
JD-Dev & Server-Admin
Reply With Quote
  #3  
Old 12.08.2022, 16:44
StefanM's Avatar
StefanM StefanM is offline
JD VIP
 
Join Date: Oct 2020
Posts: 390
Default

Quote:
Originally Posted by Jiaz View Post
@StefanM:
Frage 1:
Im Linkgrabber/wenn noch keine Dateien vorhanden sind, prüft JDownloader lediglich ob das Archiv *Lücken* aufweist. Also zb Part 1 und Part 3, dann fehlt Part 2. Ein fehlender letzter Part kann so nicht *sicher* erkannt werden. Die Erkennung geht jedoch davon aus, das wenn es zb Part 1 gibt, es mind. Part 2 geben muss.
Hatte ich mir auch schon so gedacht, da ja für alles Andere zumindest Teile der Dateien heruntergeladen werden müssten. (Hätte aber ja sein können...)

Quote:
Originally Posted by Jiaz View Post
@StefanM:
Sofern die Dateien vorhanden sind, wird zumindest bei RAR Archiven geprüft ob der Dateiheader einem Single- oder Multipart- Archiv entspricht.
Beim eigentlichen Entpackvorgang kommt werden dann weitere fehlende Parts durch die Entpackroutinen erkannt und werfen entsprechende Fehler.
Sofern die Dateien vorhanden sind...
Wie ist das zu verstehen?
Du sprichst jetzt vom Entpackvorgang, oder?

Quote:
Originally Posted by Jiaz View Post
@StefanM:
Frage 2:
Derzeit nein. Nur durch das Entpacken von lokalen Dateien. Hier könnte man zwar eine Verify Methode ähnlich wie im JDownloader für lokale Dateien einbauen, aber diese müsste das Archiv ebenfalls vollständig (ins Nichts) entpacken um zu wissen ob alle Parts vorhanden sind.

Versuch doch einfach die Archive auf der Platte entsprechend zu entpacken und dann bekommst du ja mit, ob Teile fehlen oder nicht. Oder lagerst du lieber das Archiv selbst statt dem Inhalt?
Mir ging es nur darum zu erfragen, was JD hier leisten kann. Ich entpacke grundsätzlich mit WinRar oder 7z. I.d.R. mit einer Batchdatei - unbeaufsichtigt. Da wäre es schön, vorher schon auszusortieren was fehlt, um hier erst gar nicht das Entpacken zu starten und stattdessen besser nochmals nach fehlenden Teilen zu suchen, neuen Downloadversuch zu starten,...

Deshalb wäre es schön zu wissen, was fehlt, um hier ggf. die entsprechenden Links nochmal manuell zu scannen/grabben, was JD ja automatisch nicht kann. Darum ging es mir auch in erster Linie. Oder gibt es da einen Weg?
Reply With Quote
  #4  
Old 12.08.2022, 16:55
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Sofern die Dateien vorhanden sind...
Im Linkgrabber gibt es ja unter Umständen(normalerweise) die Datei ja noch nicht, da diese ja erst geladen werden muss. Ergo kann JDownloader nicht in die Datei *hineinschauen*
__________________
JD-Dev & Server-Admin
Reply With Quote
  #5  
Old 12.08.2022, 16:56
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Da wäre es schön, vorher schon auszusortieren was fehlt, um hier erst gar nicht das Entpacken zu starten und stattdessen besser nochmals nach fehlenden Teilen zu suchen, neuen Downloadversuch zu starten,...
Hast du mal geprüft was Winrar/7Zip machen wenn du ein Archiv zum Test entpacken lässt und bewusst Teil X oder letzter Teil weglässt? Evtl gibt es ebenfalls entsprechende Erkennungen.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #6  
Old 12.08.2022, 16:58
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Deshalb wäre es schön zu wissen, was fehlt, um hier ggf. die entsprechenden Links nochmal manuell zu scannen/grabben, was JD ja automatisch nicht kann. Darum ging es mir auch in erster Linie. Oder gibt es da einen Weg?
Aktuell gibt es nur das "Entpacken von lokalen Dateien" aber nicht das "Prüfen von lokalen Dateien", was aber quasi einem Entpacken entspricht, denn nur so kann dann auch wirklich die Vollständigkeit des Archivs geprüft werden. Rein auf Dateinamen sind ja lediglich heuristische Verfahren.
__________________
JD-Dev & Server-Admin
Reply With Quote
  #7  
Old 15.08.2022, 18:26
StefanM's Avatar
StefanM StefanM is offline
JD VIP
 
Join Date: Oct 2020
Posts: 390
Default

Quote:
Originally Posted by Jiaz View Post
...was aber quasi einem Entpacken entspricht, denn nur so kann dann auch wirklich die Vollständigkeit des Archivs geprüft werden...
Bei 7z-Archiven lässt sich das letzte Archiv leicht anhand eines 'Headers' erkennen. Da wären nur wenige Byte auzulesen. Und ohne diese Info aus dem letzten Teil, kann auch ein Entpackvorgang gar nicht gestartet werden.

Anders ist es bei rar-Archiven. Bei rar-Archiven kann man auch dann die Daten aus den vorhandenen Teilen entpacken, wenn Teile fehlen.

Sind bei einem Archiv, das aus z.B. 10 Teilen besteht, die Teile 1-5 und 7-10 vorhanden, so kann man direkt die Daten aus den Teilen 1-5 entpacken.
Für 7-10 gibt es verschiedene Tricks:
  • z.B. 7-10 in 1-4 umbenennen
  • oder Teil 6 als Kopie eines anderen Teils erstellen, um die Lücke zu füllen...
  • ...
In letzterem Fall muss nur der CRC-Fehler ignoriert werden.

Den letzten Teil kann man mit einer relativ hohen Trefferquote auch daran erkennen, dass er keine "offene" Datei enthält, die in einem weiteren Teil fortgesetzt würde.

Will sagen...
Es gäbe schon Möglichkeiten, aber mir ist klar, dass das wohl nie umgesetzt werden wird. Ich kenne auch kein Tool, welches diese Erkennung ohne Entpacken (ins Leere) könnte. Bei 7z wäre es gar nicht so schwer...
Reply With Quote
  #8  
Old 16.08.2022, 18:48
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Bei 7z-Archiven lässt sich das letzte Archiv leicht anhand eines 'Headers' erkennen. Da wären nur wenige Byte auzulesen.
Hast du da zufällig mehr Infos für?
Update: Hab ne Info gefunden
Sofern möglich kann ich anhand der Infos
a.) prüfen, ob alle Parts vorhanden sind (anhand von Größenangaben und Dateigröße der einzelnen Parts)
b.) prüfen, ob der letzte Part vorhanden ist (anhand des *letzten* Headers)
__________________
JD-Dev & Server-Admin

Last edited by Jiaz; 16.08.2022 at 18:57.
Reply With Quote
  #9  
Old 16.08.2022, 19:00
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Den letzten Teil kann man mit einer relativ hohen Trefferquote auch daran erkennen, dass er keine "offene" Datei enthält, die in einem weiteren Teil fortgesetzt würde.
Was schon deutlich komplexer ist als einen bestimmten Header an fixer Stelle XY zu parsen Ich schau mir erstmal das *auf den ersten Blick* einfachere 7zip an
__________________
JD-Dev & Server-Admin
Reply With Quote
  #10  
Old 17.08.2022, 11:48
StefanM's Avatar
StefanM StefanM is offline
JD VIP
 
Join Date: Oct 2020
Posts: 390
Default

Quote:
Originally Posted by Jiaz View Post
Hast du da zufällig mehr Infos für?
z.B. hier **External links are only visible to Support Staff**www.7-zip.org/recover.html

Dort findest du auch Infos zum End-Header.

Aber wäre nett, wenn du mir einen Link zu den Infos, die du gefunden hast, mitteilen könntest.
Reply With Quote
  #11  
Old 17.08.2022, 12:02
Jiaz's Avatar
Jiaz Jiaz is offline
JD Manager
 
Join Date: Mar 2009
Location: Germany
Posts: 78,550
Default

Quote:
Originally Posted by StefanM View Post
Aber wäre nett, wenn du mir einen Link zu den Infos, die du gefunden hast, mitteilen könntest.
Ich habe ebenfalls deinen Link gefunden
__________________
JD-Dev & Server-Admin
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT +2. The time now is 06:56.
Provided By AppWork GmbH | Privacy | Imprint
Parts of the Design are used from Kirsch designed by Andrew & Austin
Powered by vBulletin® Version 3.8.10 Beta 1
Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.