Dateinamen von abgelegten pdf in Spalte

XxSchneefuchsxX

Benutzer
Beiträge
8
Hi und gutem Morgen,

Nachdem ich nun seit Tagen mehrere suchen in den unterschiedlichsten Foren und Suchmaschinen getätigt habe, werde ich hier mal fragen ob einer von euch vielleicht nen Hilfsandatz bieten kann.

Ich arbeite mit einer oracle datenbank in der durch eine interne API es möglich ist, dateien hochzuladen die an einer Ressource angehängt werden.
In der entsprechenden Property wird der Dateinamen angezeigt den die Datei im Moment des Uploads hatte. In der Table wird allerdings sowas angezeigt [datei.pdf:12543]
Schaue ich nun auf den Server finde ich sowas abgelegt eavugtrfhk6efhbgz54rhu76gdatei.pdf

Diesen Wert, also den schlussendlichen dateinamen so wie auf dem Server bekomme ich in keiner table angezeigt.

Hat von euch jemand einen Tipp wie ich mittels sql eventuell an den dateinamen komme um ihn gezielt weiterzunutzen?

Gruss

Dennis
 
Werbung:
Was ist das für eine API?
Eine Oracle API, eine Webserver API, selbstgebaut, gekauft?
Welche Oracle Version?
APEX?

Wenn die API Dateiuploads beherrscht und halbwegs durchdacht ist, kann sie sicher auch den Zugriff auf die Datei gewährleisten.
Also bietet sie vermutlich einen Interface View auf die Uploads oder sie liefert beim Upload ein "Handle", also eine ID, Namen, irgendwas, womit die Datei identifizierbar auch wieder abgerufen werden kann oder deren Attribute, administrativ oder fachlich.

Eine Möglichkeit für diese Darstellung (und fehlenden Zugriff), beim Upload ist ein Fehler geschehen, den Du nicht abprüfst? Du schaust also nur auf einen Unfall, nicht auf eine richtig hochgeladene Datei?
 
Wow das ging schnell, vielen Dank schon mal.
Also die api ist intern. Freitag hab ich mir die Logs angeschaut was passiert beim Upload.
Es wird eine FTP Verbindung aufgebaut und dann noch zwei Schritte die ich gerade nicht im Kopf habe. Kann ich morgen von der Arbeit nochmal gezielter antworten. Sowie die Angabe der Version.

Was ich weiß, es gibt einen serverfileservice den ich ansprechen kann. Das wäre ne Möglichkeit jetzt wo du es sagst.
Ich werde morgen den Versuch mal starten.

Einen Unfall produziere ich nicht, die pdf ist lesbar und aufrufbar auf dem Server. Nur würde ich die pdf gerne in einer html aufrufen wo ich dann aber den korrekten dateinamen benötige
 
Was bedeuet "intern"? Eine Oracle API?
Was ist der "serverfileservice"? Per Oracle ansprechbar? Oder per command line?
Ich habe auch mal eine solche API gebaut. Beim Upload entstehen nicht nur die Kopien der hochgeladenen Dateien, sondern auch Metadaten für den Zugriff. Z.B: genau die Information, ob und wo die Datei mit welchem Namen im Filesystem liegt. In meinem Fall ist es so, dass es transaktional gesichert ist. Wenn die Datei im FS liegt, ist alles sauber gelaufen und es gibt auch alle Infos. Bei Fehler gibt es nur den und sonst nichts, keine Bröckchen.
Den Fehler muss man natürlich im Client auswerten.

BTW: FTP ist etwas "outdated", nicht mal mehr "old school" würde ich sagen. Aber das ist Dir sicher bekannt.
 
Ich würd morgen von der Arbeit nochmal hier alle Informationen bereitstellen. Glaube es macht mehr Sinn bevor ich hier falsches wiedergebe.
Es ist ein webservice den ich ansprechen kann. Mal sehen ob ich da an die Informationen komme.
Problem um ehrlich zu sein, ich bin kein gelernter in dem Bereich. Aktuell ist alles durchs probieren beigebracht :-/
 
Ja, gut. Versuch mal, saubere Infos zu bekommen.
Oracle Database kann auch selbst ein Webserver sein/enthalten, auf dessen API du zugreifst. Genauso kann der Webservice autark laufen. Der wiederum kann auch von einem (anderen) Oracle Produkt stammen oder von einem Drittanbieter. Es gibt hunderte Möglichkeiten.

Ein Weg ist die bereits verwendete API, wie nennt sie sich, wie sprichst Du sie an? Was sagt die API Referenz?
Wie gesagt, eine API hat einen bestimmten Zweck und wenn der nicht die unwiderrufliche "Beerdigung" einer Datei auf einem Server ist, bietet die API auch mit großer Wahrscheinlichkeit eine Abfragemöglichkeit (sonst wäre sie sinnlos und inkonsistent). Entweder über sich selbst oder über irgendein Repository/ Interface in der Datenbank.
 
Guten Abend,
also ich hoffe ich hab nun einige Infos gesammelt um deiner Hilfe gerecht zu werden.

Oracle Version 12

im Log, in dem Moment wenn ich eine Datei der Property zuordne, passiert folgendes:

api.ServerSession(1489) - api call #40354 FileApi.getFtpClient (intern) /session id:1234567890
utils.FTPClient (59) - FTPClient Buffer size 2097152
api.ServerSession(1594) - api call #40354 finished 0ms
api.ServerSession(1489) - api call #40355 FileAPI.startClient (intern) / session id:1234567890
api.ServerSession(1594) - api call #40355 finished in 2ms
api.ServerSession(1489) - api call #40356 FileAPI.isConnected (intern) / session id:1234567890
api.ServerSession(1594) - api call #40356 finished in 1ms
api.ServerSession(1489) - api call #40357 FileAPI.initUpload (intern) session id:1234567890
api.intern.FileAPI(236) - Initialize upload for 1904537265:/Root/Documents/7182d0f4305b6ae1fbcbbe27c330b112_Maxlog.log.20200926-AM.log
api.ServerSession(1594) - api call #40357 finished in 2 ms
api.utils.OutputStreamDeChunker$AlmostRandomWriteBlockingFIFO(193) - (Output FIFO is waiting for: 0)
api.ServerSession(1489) - api call #40358 FileAPI.sendFileContentByChunks (intern) / session id: 1234567890
api.intern.FileAPI(299) - Chunk 0 inserted
api.utils.OutputStreamDeChunker$WritingThread(106) - Writing Thread terminated

Die Datei welche hochgeladen wurde hieß ursprünglich: Maxlog.log.20200926-AM.log

Mein Problem ist zum einen, dass in der entsprechenden Table, die Property (Typ: varchar) später sowas als Beispiel steht: [Maxlog.log.20200926-AM.log:12345]

Woher kommt das "7182d0f4305b6ae1fbcbbe27c330b112_" was an die Datei vorgehängt wird. Ich könnte die selbe Datei auch 10 mal hochladen, der vorgesetzte String ändert sich jedes mal.
 
Ich könnte die selbe Datei auch 10 mal hochladen, der vorgesetzte String ändert sich jedes mal.
Denk mal bitte kurz nach. Was soll der Server machen?
Ein typisches KI Szenario:
"Ach, die hat er doch grad schon hoch geladen, hat er sich wohl vertan! > Fehlermeldung: "Hab ich schon!"
oder
"Huh, keine Datenfehler mehr in der Datei beim vierten Upload, dann nehm ich die! > Erfolgsmeldung: "Super, damit kann ich was anfangen!"

Was soll der Server sonst machen, außer eindeutige Namen zu vergeben, wenn er einen Upload eindeutig identifizieren will?

Hast Du schon irgendwo verraten, was das für eine API ist? Gekauft, selbstgebaut, dokumentiert, ..?
Hast Du schon mal die API Referenz durchsucht, welche Calls es noch gibt?
Hast Du mal in der DB geschaut, was das Repository zu der API und ihren Tabellen sagt?
Hast Du mal versucht, Dir die API anzuschauen? In Oracle, PL/SQL? Ist es eine Oracle PL/SQL API?

Und was ist :12345 oder :12435 ?

Und was ist 1904537265?

Und schließlich wie Du selbst fragst, was ist 7182d0f4305b6ae1fbcbbe27c330b112?
Verdächtige Zahlen.

Wenn Du ein Standardprodukt einsetzt, könnte einem Kenner dieses Produkts etwas dazu einfallen, was Du geschrieben hast. Dann wäre es hilfreich, das Produkt zu benennen.
Wenn es anders ist, musst Du mehr Informationen suchen und liefern.
 
Wow, wieder schnell.

Ja ich weiß was du meinst. Wollte mit der Aussage nur darstellen dass jedesmal ein unique dateiname generiert wird.

Es ist eine gekaufte Anwendung, ähnlich jasper report. Bin mir noch nicht so ganz sicher ob ich hier den Namen direkt preisgeben kann/darf.

Die Werte hinter den : waren erfunden da ich es vorhin ausm Kopf geschrieben habe. Lediglich der dateiname war der echte. Den hatte ich als Foto vorhin mitgenommen :)

Es gibt ein Repository zur api. Werde sie mir morgen mal raussuchen und kann dann eventuell weiteres zur Verfügung stellen.
Mir helfen aber schon mal deine Denkanstöße sehe, mir ist lernen lieber als komplettes vorprädigen.
Vielen Dank bis hierhin schon mal
 
Also ich hab heute nochmal bissl gesucht gesucht gesucht....
Ja es gibt apex auf der datenbank
Eine Table mit den Werten key, dateiname:12345, dateiname wie auf Server finde ich nicht

Irgendwie bin ich dann beim googeln auf blob und clob gekommen, kann das des Rätsels Lösung sein?
 
Das ist alles ziemlich spekulativ.
BLOB ist ein Spaltentyp, in dem man große Dateien speichern kann.
CLOB ist für große Texte gedacht.
Beides kommt wohl in fast jeder Datenbank vor.

Wenn Du keine Dokumentation hast, keine Rechte, die APIs und deren Code anzuschauen, ist es relativ müßig, weiter zu raten.
Frag am besten die Firma, die das System geliefert oder gebaut hat.
 
@magpie Hash Wert habe ich mir gerade von einigen Dateien angeschaut, leider ist es nicht das Ziel.

@dabadepdu Ich hab die Firma gestern kontaktiert, mal sehen ob heute was kommt von denen. Laut Google soll wäre die WWW_flow_files Table das Ziel, diese ist auch vorhanden aber leider leer. Ich warte mal und hab Hoffnung. geht nicht, glaube ich nicht und akzeptiere ich nicht :)
 
Na endlich! :)
Sieht nach APEX aus, es geht mit Sicherheit.

Ein Hashwert nur auf die Datei könnte man machen, bringt aber für die Identifikation und den Workflow nichts, denke ich.
 
Werbung:
Ne, ein Hashwert wäre im Falle eines identischen Dokumentes immer derselbe und somit keine unique Angabe.

APEX habe ich mir mal die Tabellen angeschaut, nur auch da war nichts zu finden, auch wenn es massig Tabellen sind :-D
Mal sehen wann sich die Firma meldet und hoffe sie geben Hilfestellung.
 
Zurück
Oben