franz: Mit File auf anderen Server gelangen

Hi Leute!

Ich möchte über einen Link im Intranet ein xls.File öffnen und das ganze mit file nicht mit ftp!!

Wenn ich mir lokal den Server als Netzlaufwerk einrichte geht es
file:///z|/....

Jedoch weiß ich nicht wie ich es ohne Netzlaufwerk machen soll
file:///server/c|/...  geht nämlich nicht

Danke

  1. Hi franz,

    Wenn ich mir lokal den Server als Netzlaufwerk einrichte geht es
    file:///z|/....

    in diesem Falle kann Dein Betriebssystem bzw. Dein Browser diesen URL als Zugriff auf ein Laufwerk interpretieren und die normale "fopen"-Routine verwenden - die Datei "liegt auf Deinem Rechner" (egal, wo sie tatsächlich physikalisch liegt).

    Jedoch weiß ich nicht wie ich es ohne Netzlaufwerk machen soll
    file:///server/c|/...  geht nämlich nicht

    Eben. Es geht nicht ohne "Netzlaufwerk" - oder ohne etwas Gleichwertiges.

    Ich bin kein Windows-Experte - aber wenn Du unbedingt das "file"-Protokoll verwenden willst (weil Du die Datei nicht nur lesen, sondern auch zurückschreiben mußt - andernfalls würde Dir HTTP reichen), dann muß Dein Betriebssystem auf den entsprechenden Datenträger "zugreifen" können, denke ich.

    Das kann über eine Windows-Laufwerkseinblendung erfolgen, aber beispielsweise auch über einen Samba-Import (falls Dein Fileserver eine UNIX-Maschine ist, wie bei uns hier im Büro).
    Hauptsache ist, daß Deine beiden Rechner sich mit einem Protokoll unterhalten, welches Dein lokaler Rechner als "Dateizugriff" akzeptiert - das Protokoll zu diesem Zweck innerhalb eines Windows-Netzwerkes wäre SMB, innerhalb eines UNIX-Netzwerkes könnte es beispielsweise NFS sein.

    Es gibt auch Programme, welche eine FTP-Verbindung im Hintergrund öffnen und Dir über dieses Protokoll eine Datei "zur Verfügung stellen" (inklusive Zurückschreiben). Unter UNIX kenne ich so etwas vom Emacs-Editor; unter Windows kann der WinCommander etwas Vergleichbares. Beide unterstützen diese Fähigkeit aber nur für sich selbst - sie erweitern nicht das Betriebssystem um die Fähigkeit, generell Dateien von fremdem Rechnern zu verarbeiten.

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    1. Hi!
      wie würde es mit http gehen?

      1. Hi franz,

        wie würde es mit http gehen?

        Deine Frage ist ein bißchen arg kurz ausgefallen.

        Willst Du wissen, wie Du einen HTTP-Server in Deinem Netz installieren kannst, um dann von jedem Rechner aus lesend (!) auf die Excel-Datei zugreifen zu können?

        Viele Grüße
              Michael

        --
        T'Pol: I apologize if I acted inappropriately.
        V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
        1. Hi Michael!

          Willst Du wissen, wie Du einen HTTP-Server in Deinem Netz installieren kannst, um dann von jedem Rechner aus lesend (!) auf die Excel-Datei zugreifen zu können?

          kennst Du Dich in dem Berich aus? Ich meine jetzt über HTTP _schreibend_ auf eine entfernte Datei zuzugreifen. Geht das mit mod_webdav für Apache? Oder womit löst man sowas am besten?

          Grüße
          Andreas

          1. Hi Andreas,

            kennst Du Dich in dem Berich aus?
            Ich meine jetzt über HTTP _schreibend_ auf eine entfernte Datei zuzugreifen.

            nicht so arg toll, nein.

            Geht das mit mod_webdav für Apache? Oder womit löst man sowas am besten?

            Zunächst mal geht es wohl mit einer HTTP-Methode, die nicht "GET" heißt - sondern etwa POST oder PUT.

            Und dann natürlich mit einem Client (inklusive HTML-Seite/Formular etc.), der das kann.
            Das könnte statt eines Browsers auch ein selbst geschriebenes Etwas sein. (LWP::UserAgent?)

            Bei POST wäre eines der üblichen File-Upload-Verfahren verwendbar; PUT habe ich selbst noch nicht aktiv eingesetzt.
            In jedem Falle muß auf dem Server eine Applikation verfügbar sein, welche die Datei in Empfang nimmt ... auch mod_webdav (das ich nicht kenne) könnte so etwas sein.

            Viele Grüße
                  Michael

            --
            T'Pol: I apologize if I acted inappropriately.
            V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
            1. Hi Michael!

              Geht das mit mod_webdav für Apache? Oder womit löst man sowas am besten?

              Zunächst mal geht es wohl mit einer HTTP-Methode, die nicht "GET" heißt - sondern etwa POST oder PUT.

              IMHO kann man mit POST nur irgendeine Datei vom Client an den Server schicken, mit PUT kann man irgendeine Datei direkt auf den Server schreiben, aber IMHO unterstützen das die wenigsten Webserver, oder? Wäre ja auch eine bedeutende Sicherheitslücke.

              Und dann natürlich mit einem Client (inklusive HTML-Seite/Formular etc.), der das kann.

              Bei mir geht es um noch um mein Groupware-projekt wo ich gerne mit Mozilla als Client arbeiten würde, genauer geht es um den kalender, udn da der eben nict auf HTML basieren soll, sondern auf ical, möchte ich den Calender aus dem mozilla Kalenderprojekt als Client nehmen. Der kann nämllich auch eine iCal-Datei auf einem Server verwenden, ich dachte damit sei alles klar, nur habe ich erst später bemerkt, dass der Client ja so ohne weiteres nicht auf eine nanderen Rechner schreiben kann.

              Und da der "andere Rechner" nunmal ein Linux-Server ist, ist das auch mit dem proprietären MS-Netzwerkprotokollan so eien Sache, ich weiß nicht in wie weit man das mit Samba umgehen kann. Jedenfalls ist es im Mozilla-Kalender so vorgesehen, dass man einen Server mit webdav verwendet, was wohl eine "Erweiterung" des HTTP-protkolls eben um diese remote-Schreibrechte auf eine Datei wie es ganz am Anfang von HTTP auch geplant war, darstellt.

              Hier kann man jetzt im Client seine HTTP-zugangsdaten und den Pfad zur Datei angeben, und den Rest macht dann wohl der Server. Nur was da genau nötig ist steht da nirgedwo ;-) Ich habe zwar ein Apache-Modul namens mod_webdav gefunden, nur ist das ganez eien recht komplexe Materie, udn ich weiß nicht so recht wie ich das ganze angehen soll.

              Ich weiß halt nicht wie ich dem Server klarmache, dass er

              1. eine Authentifizierung durchführen soll(vielleicht brauche ich nur ein htaccess)
              2. das er ein wie auch immer gearteten Request des Clients so interpretiert, das er die zuvor heruntergeladene Datei mit der neuen Datei überschreibt, ich weiß übrhaupt nicht wie ich das machen soll und wie mir ein Webdav-Modul da behilflich sein soll. Im Augenblick fiele es mir glaube ich fast einfacher das ganze mit einem eigenen PHP Programm zu machen, aber irgendwie bekomme uich den Client nichtmal dazu einen entsoprechenden Request zu senden, den ich dann wenisgtens mal analysiern könnte. Ich stehe hier irgendwie auf dem Schlauch, naja.

              Jedenfalls soll das ganze im Hintergrund ablaufen, nicht mit "file-Upload...."

              Viele Grüße
              Andreas

              PS: Der Kalender ist wirklich nicht schlecht: http://www.mozilla.org/projects/calendar/

              1. Hi Andreas Korthaus,

                Zunächst mal geht es wohl mit einer HTTP-Methode, die nicht "GET" heißt - sondern etwa POST oder PUT.
                IMHO kann man mit POST nur irgendeine Datei vom Client an den Server schicken, mit PUT kann man irgendeine Datei direkt auf den Server schreiben, aber IMHO unterstützen das die wenigsten Webserver, oder? Wäre ja auch eine bedeutende Sicherheitslücke.

                Ich sehe zwischen beiden Verfahren keinen prinzipiellen Unterschied: In beiden Fällen ist ein auf dem Server installiertes und freigegebenes Programm zur Annahme und Verarbeitung der Daten erforderlich.
                Bei POST gehen die Daten durch die CGI-Schnittstelle (oder im Falle von PHP irgendwie intern an das Modul); bei PUT mag das geringfügig anders sein (da kenne ich mich halt nicht aus).

                Der Apache "unterstützt" die HTTP-Methode PUT - was nicht bedeutet, daß der entsprechende Handler standardmäßig aktiv ist. Insbesondere kann man dort die Verwendung von Methoden selektiv sperren (man kann beispielsweise auch POST abschalten und nur GET erlauben - dann geht gar kein Upload mehr).

                Und dann natürlich mit einem Client (inklusive HTML-Seite/Formular etc.), der das kann.
                Bei mir geht es um noch um mein Groupware-projekt

                Deshalb habe ich ganz bewußt das Wort "Browser" vermieden. ;-)

                Hier kann man jetzt im Client seine HTTP-zugangsdaten und den Pfad zur Datei angeben, und den Rest macht dann wohl der Server. Nur was da genau nötig ist steht da nirgedwo ;-) Ich habe zwar ein Apache-Modul namens mod_webdav gefunden, nur ist das ganez eien recht komplexe Materie, udn ich weiß nicht so recht wie ich das ganze angehen soll.

                RTFM. Ich fürchte, daran führt kein Weg vorbei.

                Ich weiß halt nicht wie ich dem Server klarmache, dass er

                1. eine Authentifizierung durchführen soll(vielleicht brauche ich nur ein htaccess)

                gut möglich. Kann aber auch in WebDAV etc. bereits als Session-Konzept drin sein.

                1. das er ein wie auch immer gearteten Request des Clients so interpretiert, das er die zuvor heruntergeladene Datei mit der neuen Datei überschreibt, ich weiß übrhaupt nicht wie ich das machen soll und wie mir ein Webdav-Modul da behilflich sein soll.

                Das ist das kleinste Problem. Ein Upload-Skript könnte das ja auch.
                Das wichtigste, was ein CMS mehr können muß als ein trivialer Uploader, ist, parallele Schreibzugriffe auf dasselbe Objekt zu synchronisieren.

                irgendwie bekomme uich den Client nichtmal dazu einen entsoprechenden Request zu senden,

                Was passiert denn, wenn Du mal ein ganz doofes Upload-Formular baust, als Methode PUT statt POST einträgst und auf dem Server alles, was dort ankommt, unverdaut in eine Datei schreibst?

                Jedenfalls soll das ganze im Hintergrund ablaufen, nicht mit "file-Upload...."

                Das kommt auf die Fähigkeit Deines Client an - wobei ich die Struktur der angezeigten Seiten bewußt dazu zähle.
                Wir lassen in einer Frameset-basierten Anwendung auch einiges "im Hintergrund" (in hidden frames) an HTTP-Requests laufen, damit in den sichtbaren Fenstern "gezaubert" werden kann ... nein, das ist nicht die reine Lehre, aber es funktioniert ...

                Viele Grüße
                      Michael

                --
                T'Pol: I apologize if I acted inappropriately.
                V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    2. Moin!

      Ich denke, Franz wollte einfach die URL-Syntyax fuer den Zugriff auf einen im Netzwerk freigegebenen Share wissen. Um per normalem Dateinamen auf so einen Share zuzugreifen, muss der Share nicht unbedingt einen Laufwerksbuchstaben erhalten: \server\share\directory\file funktioniert unter Windows an jeder Stelle, an der ein normaler Pfad stehen kann. Bei einer file-URL wuerde ich mal probieren, den Rechnernamen aehnlich wie bei http nach den ersten beiden // einzufuegen:
      file://server/share/directory/file
      Kann ich aber nicht ausprobieren, hab naemlich grad keine Shares laufen.

      So long

      --
      Linux is for people who hate Windows. BSD is for people that love unix.
      1. Hi!

        file://server/share/directory/file

        Man kann auf alle Dateien direkt zugreifen, die ebenfalls auf Windows-Rechnern liegen, die an dasselbe Netzwerk angeschlossen sind, udn die MS Datei+ Druckerfreigabe aktiviert haben, und darüber hinaus dem dort eingeloggten User zugiff erlauben.

        Der Zugriff erfolgt dann mit

        \rechnername\Laufwerksname[1]\Verzsichnie\datei.xls

        [1] Der Laufwerksname ist veränderbar, und muß nicht C oder D oder sowas heißen.

        Viele Grüße
        Andreas

        1. Moin!

          file://server/share/directory/file
          Man kann auf alle Dateien direkt zugreifen, die ebenfalls auf Windows-Rechnern liegen, die an dasselbe Netzwerk angeschlossen sind, udn die MS Datei+ Druckerfreigabe aktiviert haben, und darüber hinaus dem dort eingeloggten User zugiff erlauben.

          Wo ist da jetzt der Unterschied zu dem, was ich geschrieben habe?

          Der Zugriff erfolgt dann mit

          \rechnername\Laufwerksname[1]\Verzsichnie\datei.xls

          [1] Der Laufwerksname ist veränderbar, und muß nicht C oder D oder sowas heißen.

          Nein, nicht Laufwerksname, sondern Name des Shares! Man muss nicht ganze Laufwerke freigeben; Unterverzeichnisse tun's genauso. Im Netzwerk macht das keinen Unterschied, von dort aus sieht man nur "Shares".

          So long

          --
          Bier trinken fetzt!!!
          1. Hi!

            Hast Recht, sorry.

            Grüße
            Andreas