PL und Umgang mit Hardlinks?

Hier diskutieren die Anwender von PhotoLine untereinander

Moderator: Hoogo

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

PL und Umgang mit Hardlinks?

Post by ObiTobi » Tue 06 Nov 2018 12:40

Hallo,

vermutlich eher untypische Frage.

Zunächst kurze Erklärung. Meine Bilder liegen seit "schon immer" in der Verzeichnisstruktur C:\DSLR\DSLR\PlattenName\KameraName\RAW\Jahr\Monat\Tag

Da es nicht unbedingt einfach ist mit Programmen die keine Verwaltung haben mit dieser Struktur zu arbeiten, habe ich mir was anders überlegt und gebaut. In meiner Verwaltungssoftware (PhotoSupreme) wähle ich z.B 10 Bilder die auf unterschiedlichen Platten (PlattenName) liegen, mit unterschiedlichen Kameras (KameraName), Jahr\Monat\Tag erstellt worden sind. Aus der Auswahl wird eine Liste erstellt die so aussieht:

Code: Select all

C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.cr2
C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\09\19\_rr_3458.cr2
C:\DSLR\DSLR\ExtHDD 2504\EOS5DMKIII\RAW\2015\04\22\_rr_5180.cr2
C:\DSLR\DSLR\ExtHDD 2503\EOS5DMKIII\RAW\2013\06\19\_z2a7050.cr2
C:\DSLR\DSLR\ExtHDD 2503\EOS5DMKIII\RAW\2013\06\13\_z2a5452.cr2
Diese Liste gebe ich an mein PowerShell Script der jetzt folgendes macht:

Im Verzeichnis C:\DSLR\EBV werden HardLinks für die RAW Dateien angelegt. Wenn in der Struktur woe die RAW liegen keine dazugehörige *.dr4, *.tif, *.pld vorhanden sind werden diese mit 0 Byte Größe angelegt und auch nach C:\DSLR\EBV\ als HardLinks verlinkt.

Das hat den Vorteil, Canon DPP speichert die Bearbeitungen in *.dr4 Dateien und konvertierte RAW in *.tif. Ich arbeite also mit dem Programm in genau diesem einem Verzeichnis und trotzdem liegen am Ende alle meine Dateien da wo sie liegen sollen - direkt neben den RAW Dateien.

/ Ich hoffe das ist so weit verständlich beschrieben /

Und jetzt kommt PL ins Spiel. Wenn ich jetzt so eine *.tif Datei öffnen will, stellt PL fest, dass es auch eine *.pld Datei vorhanden ist und sagt, dass diese älter ist (was ja auch stimmt, denn die HardLinks sind gleich erstellt worden aber erst danach ist die *.tif Datei aus dem Konverter gespeichert) und ob ich sie trotzdem laden will. Ich beantworte die Frage mit "Nein".
Wenn ich jetzt in PL wähle Speichern - wird die *.tif Datei gespeichert und *.pld Link gelöscht. Wähle ich "speichern unter" und wähle hier als Format *.pld wird mein Link gelöscht und eine *.pld Datei gespeichert.

Beides ist also nicht Zielführend für mich. Ich nehme mal an, dass es deswegen passiert, weil PL beim Speichern die alte Datei erst löscht und dann neue schreibt und kein "überschreiben" Vorgang stattfindet.
Lässt sich das irgendwie lösen?

Robert

bkh
Betatester
Posts: 3601
Joined: Thu 26 Nov 2009 22:59

Re: PL und Umgang mit Hardlinks?

Post by bkh » Tue 06 Nov 2018 22:48

ObiTobi wrote:
Tue 06 Nov 2018 12:40
Diese Liste gebe ich an mein PowerShell Script der jetzt folgendes macht:

Im Verzeichnis C:\DSLR\EBV werden HardLinks für die RAW Dateien angelegt. Wenn in der Struktur woe die RAW liegen keine dazugehörige *.dr4, *.tif, *.pld vorhanden sind werden diese mit 0 Byte Größe angelegt und auch nach C:\DSLR\EBV\ als HardLinks verlinkt.
Warum nimmst du nicht symlinks? Zumindest unter macOS funktioniert das mit deinem setup problemlos, die Dateien werden in die Originalverzeichnisse unter \PlattenName\KameraName\RAW\Jahr\Monat\Tag gespeichert, sind aber über die Symlinks aus dem EBV-Verzeichnis leicht erreichbar.

L.G.

Burkhard.

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 07:59

Hallo Burkhard,
bkh wrote:
Tue 06 Nov 2018 22:48
Warum nimmst du nicht symlinks?
Muss ich mal probieren. Ursprünglich wollte ich Symlinks nehmen, Canon DPP kommt damit nicht klar. Ich habe aber nicht probiert ob es funktioniert, wenn das RAW als Hardlink und andere Dateien als Symlink vorliegen

Danke fürs Testen des Setups.

[EDIT]
Unter Windows funktioniert es nicht.
Damit jetzt kein Missverständnis aufkommt - ich möchte mit PL eben lesen/ schreiben in dem Verzeichnis "C:\DSLR\EBV".
Auch bei Symlinks - löscht PL den Link und erstellt eine native Datei
[/EDIT]

Robert

Martin Huber
Entwickler
Entwickler
Posts: 3241
Joined: Tue 19 Nov 2002 15:49

Re: PL und Umgang mit Hardlinks?

Post by Martin Huber » Wed 07 Nov 2018 12:14

ObiTobi wrote:
Tue 06 Nov 2018 12:40
Wenn ich jetzt in PL wähle Speichern - wird die *.tif Datei gespeichert und *.pld Link gelöscht. Wähle ich "speichern unter" und wähle hier als Format *.pld wird mein Link gelöscht und eine *.pld Datei gespeichert.
Grundsätzlich sollte das Verhalten bei "Speichern" und "Speichern unter" gleich sein (und bei einem kurzen Test hier war es auch so). Zusätzliche PLDs werden aber nur gespeichert, wenn sie auch nötig sind, also das Dokument was enthält, das im Originalformat nicht gespeichert werden kann.
ObiTobi wrote:
Tue 06 Nov 2018 12:40
Ich nehme mal an, dass es deswegen passiert, weil PL beim Speichern die alte Datei erst löscht und dann neue schreibt und kein "überschreiben" Vorgang stattfindet.
Das Vorgehen ist etwas anders. Um potentielle Datenverluste zu vermeiden, sichert PhotoLine beim Speichern zuerst in eine temporäre Datei. Erst wenn dieser Speichervorhang erfolgreich war, werden die Originaldatei und die neue Datei ausgetauscht und die Originaldatei danach gelöscht bzw. zur Backupdatei gemacht.
ObiTobi wrote:
Wed 07 Nov 2018 07:59
bkh wrote:
Tue 06 Nov 2018 22:48
Warum nimmst du nicht symlinks?
Muss ich mal probieren. (...)
[EDIT]
Unter Windows funktioniert es nicht.
Damit jetzt kein Missverständnis aufkommt - ich möchte mit PL eben lesen/ schreiben in dem Verzeichnis "C:\DSLR\EBV".
Auch bei Symlinks - löscht PL den Link und erstellt eine native Datei
[/EDIT]
Mit einem symbolischen Link geht das unter Windows auf den ersten Blick nicht, mit einer Verknüpfung, die ich über den Explorer angelegt habe, aber schon. Mein Konstellation:
c:\Bilder\LinkOrdner\LinkSource.jpg
c:\Bilder\LinkDatei.jpg (verweist auf c:\Bilder\LinkOrdner\LinkSource.jpg)

Ziehe ich nun LinkDatei.jpg auf PhotoLine, wird "c:\Bilder\LinkOrdner\LinkSource.jpg" geöffnet. Füge ich dem Dokument in PhotoLine einen Kreis hinzu und speichere ab, wird "c:\Bilder\LinkOrdner\LinkSource.jpg" aktualisiert und ein neues "c:\Bilder\LinkOrdner\LinkSource.pld" erstellt.
Wenn ich nun das Dokument schließe und wieder LinkDatei.jpg auf PhotoLine ziehe, legt PhotoLine wieder ein Dokument mit dem Pfad ""c:\Bilder\LinkOrdner\LinkSource.jpg" an, lädt aber den Inhalt aus "c:\Bilder\LinkOrdner\LinkSource.pld".

Mit harten Links kann es meiner Ansicht nach nicht funktionieren, da harte Links (so wie ich das verstanden habe) ja wirklich echte Dateien sind. PhotoLine wird seine Dateien also immer da anlegen, woher es sie auch geladen hat.

Martin

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 13:04

Also hier funktioniert es nicht. Und nach der Beschreibung würde ich sagen es kann nicht funktionieren.

So sieht das Verzeichnis wo die Dateien physikalisch abgelegt sind, nach dem ich die Links erstelle
07-11-_2018_11-48-48.png
So ist das in meinem "Edit-Verzeichnis"
07-11-_2018_11-49-15.png
So sieht das Ziel-Verzeichnis, nach dem ich in Canon DPP aus *.cr2 eine *.tif Datei erzeugt habe
07-11-_2018_11-50-33.png
Und so sieht das "Edit-Verzeichnis" nach dem Befehl Speichern unter PL (habe auch Kreise meiner TIFF Datei hinzugefügt). Die Links werden gelöscht und eben physikalische Dateien erstellt.
You do not have the required permissions to view the files attached to this post.

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 13:08

K.A warum - nur 3 Screenshots gingen vorher. Hier also das letzte
07-11-_2018_12-02-44.png
- Es sieht so aus, also ob mein angedachtes Workflow nicht funktionieren kann :(

Wie man auch in dem 3-ten Screenshot sieht, ist für die *.tif Datei auch der Link futsch. Canon DPP "honoriert" Symlinks nicht. Erstelle ich stattdessen Hardlink funktioniert es. In dem Fall ist es eben für die Anwendung nicht erkennbar was ist Origigal und was Link.
Ich gehe auch davon aus, dass DPP an der Stelle anders verfährt als PL - nämlich es wird die Datei geschrieben. Bei PL wohl wird nach dem alles so weit erledigt ist die Datei "verschoben" und das zerstört natürlich die Links.

Robert

[EDIT]
Wenn jemand eine Gute Idee hat wie ich das Problem lösen kann, her damit.
[/EDIT]
You do not have the required permissions to view the files attached to this post.

Martin Huber
Entwickler
Entwickler
Posts: 3241
Joined: Tue 19 Nov 2002 15:49

Re: PL und Umgang mit Hardlinks?

Post by Martin Huber » Wed 07 Nov 2018 13:45

ObiTobi wrote:
Wed 07 Nov 2018 13:04
Also hier funktioniert es nicht. Und nach der Beschreibung würde ich sagen es kann nicht funktionieren.
Dass es mit Links unter Windows (im Gegensatz zu macOS) nicht geht, habe ich ja geschrieben. Es geht nur mit Verknüpfungen. Ich hatte eigentlich eher als Antwortet erwartet, ob das Verhalten mit den Verknüpfungen das ist, was du haben willst.

Links sind unter Windows eher unüblich. Hier unter Windows 10 brauchte ich Administratorrechte, um überhaupt einen symbolischen Link anzulegen. Und der Explorer zeigt für Links (im Gegensatz zu Verknüpfungen) auch keine Vorschau, sondern nur ein generisches Link-Symbol.

Martin

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 14:10

Martin Huber wrote:
Wed 07 Nov 2018 13:45
Links sind unter Windows eher unüblich. Hier unter Windows 10 brauchte ich Administratorrechte, um überhaupt einen symbolischen Link anzulegen. Und der Explorer zeigt für Links (im Gegensatz zu Verknüpfungen) auch keine Vorschau, sondern nur ein generisches Link-Symbol.
Das Arbeiten mit Links unter Windows eher selten jemand macht weiß ich :)
Hardlinks mit fsutil kann normaler User anlegen und löschen ohne etwas zu tun. Symlinks mit mklink kann normaler User auch, allerdings muss dafür entweder per Gruppenrichtlinie es konfiguriert werden oder "Entwickler-Modus" in WIndows Konfiguration eingeschaltet werden.

Die klassische Verknüpfung unter Windows nutzt mir nichts, weil ich diese nicht automatisch mir einem Script erstellen kann.
So wie ich mir es überlegt habe, funktioniert eben nicht. Mit Photoshop kommt gleiches Verhalten wie bei PL. Ich muss mir also entweder etwas "schlaues" überlegen oder die Idee leider als nicht umsetzbar komplett verwerfen :(

[EDIT]
Dennoch - mich würde jetzt doch wundern wenn es unter OSX funktionieren soll
[/EDIT]

Robert

Martin Huber
Entwickler
Entwickler
Posts: 3241
Joined: Tue 19 Nov 2002 15:49

Re: PL und Umgang mit Hardlinks?

Post by Martin Huber » Wed 07 Nov 2018 17:47

ObiTobi wrote:
Wed 07 Nov 2018 14:10
Die klassische Verknüpfung unter Windows nutzt mir nichts, weil ich diese nicht automatisch mir einem Script erstellen kann.
Du hast oben was von Powershell geschrieben. Damit kenne ich mich nicht aus, aber wenn man nach "powershell verknüpfung erstellen" sucht, kommen etliche Ergebnisse, die auf den ersten Blick sinnvoll aussehen.
ObiTobi wrote:
Wed 07 Nov 2018 14:10
[EDIT]
Dennoch - mich würde jetzt doch wundern wenn es unter OSX funktionieren soll
[/EDIT]
Den obigen Test mit der Verknüpfung habe ich unter macOS sowohl mit Aliasen als auch mit symbolischen Links ausprobiert. Und beide haben sich wie Windows mit Verknüpfungen verhalten.

Martin

bkh
Betatester
Posts: 3601
Joined: Thu 26 Nov 2009 22:59

Re: PL und Umgang mit Hardlinks?

Post by bkh » Wed 07 Nov 2018 18:14

ObiTobi wrote:
Wed 07 Nov 2018 14:10
Dennoch - mich würde jetzt doch wundern wenn es unter OSX funktionieren soll
Warum denn nicht? Wenn du den Symlink öffnest, öffnet PL die Originaldatei. Beim Speichern landet die Sidecar-pld im Ordner mit dem Datum. Die Symlinks aus dem Edit-Ordner zeigen alle auf die richtigen Dateien. Du darfst natürlich nicht mit "Speicher unter …" die Symlinks aus dem Edit-Ordner überschreiben.

L.G.

Burkhard.

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 19:46

Martin Huber wrote:
Wed 07 Nov 2018 17:47
ObiTobi wrote:
Wed 07 Nov 2018 14:10
[EDIT]
Dennoch - mich würde jetzt doch wundern wenn es unter OSX funktionieren soll
[/EDIT]
Den obigen Test mit der Verknüpfung habe ich unter macOS sowohl mit Aliasen als auch mit symbolischen Links ausprobiert. Und beide haben sich wie Windows mit Verknüpfungen verhalten.
Dann bedeutet es, dass PL sich unter OSX anders verhält denn:
Martin Huber wrote:
Wed 07 Nov 2018 12:14
Das Vorgehen ist etwas anders. Um potentielle Datenverluste zu vermeiden, sichert PhotoLine beim Speichern zuerst in eine temporäre Datei. Erst wenn dieser Speichervorhang erfolgreich war, werden die Originaldatei und die neue Datei ausgetauscht und die Originaldatei danach gelöscht bzw. zur Backupdatei gemacht.
Und das bedeutet zwangsweise ein "mv" oder "rm" und das löscht natürlich die Verknüpfung (link). Anders kriegt man die Dateien nicht "ausgetauscht".

Das vorgehen mit der "Verknüpfung" unter Windows hilft mir nicht wirklich weiter, denn das Ding erwartet eine Erweiterung *.lnk oder url - ergo ich musste da anfangen noch für die Verknüpfungen extra Dateinamen mir auszudenken.

Robert
Last edited by ObiTobi on Wed 07 Nov 2018 19:49, edited 1 time in total.

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Wed 07 Nov 2018 19:49

bkh wrote:
Wed 07 Nov 2018 18:14
Warum denn nicht?
Siehe oben. So wie Martin das Verhalten/ Vorgehen beim Speichern beschreibt kann es nicht funktionieren.
Ich werde später meinen "Rentner" Mac anwerfen und schauen ob das wirklich funktioniert. Vielleicht schreiben wir an einander vorbei.

Robert

bkh
Betatester
Posts: 3601
Joined: Thu 26 Nov 2009 22:59

Re: PL und Umgang mit Hardlinks?

Post by bkh » Thu 08 Nov 2018 16:03

ObiTobi wrote:
Wed 07 Nov 2018 19:46
Und das bedeutet zwangsweise ein "mv" oder "rm" und das löscht natürlich die Verknüpfung (link). Anders kriegt man die Dateien nicht "ausgetauscht".
Da hast du grundsätzlich etwas falsch verstanden. Wenn du (unter einem UNIX-System) einen symlink von Datei B nach Datei A hast und A austauschst, dann zeigt symlink B auf die neue Datei A, denn der symlink speichert nur den Pfad zu Datei A. Das ist eben der Unterschied zwischen symlink und hard link. Wie es mit Windows-Verknüpfungen aussieht, weiß ich nicht.

L.G.

Burkhard.

ObiTobi
Mitglied
Posts: 192
Joined: Wed 29 Sep 2010 18:46

Re: PL und Umgang mit Hardlinks?

Post by ObiTobi » Thu 08 Nov 2018 16:11

bkh wrote:
Thu 08 Nov 2018 16:03
Da hast du grundsätzlich etwas falsch verstanden.
Das sicherlich nicht. Eher vermute ich bei Deiner Beschreibung, dass Du die "Seiten" verwechselst.

A = OrgDatei
B = LinkAufOrgDatei

A ist C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.tif

B liegt in C:\DSLR\EBV\_rr_2571.tif und ist -> auf C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.tif

Wenn jetzt B gelöscht wird (was PL macht) dann ist es eben weg und kein neuer Speicherort

Robert

bkh
Betatester
Posts: 3601
Joined: Thu 26 Nov 2009 22:59

Re: PL und Umgang mit Hardlinks?

Post by bkh » Thu 08 Nov 2018 16:52

ObiTobi wrote:
Thu 08 Nov 2018 16:11
Das sicherlich nicht. Eher vermute ich bei Deiner Beschreibung, dass Du die "Seiten" verwechselst.

A = OrgDatei
B = LinkAufOrgDatei

A ist C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.tif

B liegt in C:\DSLR\EBV\_rr_2571.tif und ist -> auf C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.tif

Wenn jetzt B gelöscht wird (was PL macht) dann ist es eben weg und kein neuer Speicherort

Robert
Wenn du B in Pl öffnest, verwendet PL A. Beim Speichern erzeugt PL C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.pld. Wenn du vorher C:\DSLR\EBV\_rr_2571.pld erzeugt hast, zeigt das nach wie vor auf C:\DSLR\DSLR\ExtHDD 2505\EOS5DMKIII\RAW\2018\01\17\_rr_2571.pld, so, wie es sein soll. Du darfst nur nicht, wie ich schon oben geschrieben habe, mit "Speichern unter" versuchen, in das B-Verzeichnis zu speichern. Am besten, du machst die symlinks read-ony, dann kann das mit dem Überschreiben auch nicht passieren.

L.G.

Burkhard.