Ich muss Dateien auf meinen Webserver zur Verarbeitung übertragen und ich würde es gerne generisch machen, wenn möglich.
Ich muss in der Lage sein, Dateien von den folgenden Protokollen minimal zu übertragen (mit eventuell mehr zu folgen):
HTTP
FTP
SCP
Ich möchte wirklich auch Dateien an SMTP senden können
Also meine Frage, gibt es ein Toolkit, das das schon macht? Wenn dies der Fall ist, muss es Open Source sein, da dies Teil eines Open-Source-Projekts ist.
Wenn es kein Toolkit gibt, das dies bereits tut, was ist der beste Weg, um eine Schnittstelle zu strukturieren, die die meisten Dateiübertragungen behandelt?
Ich habe über so etwas nachgedacht:
%Vor%Und dann eine Factory, die die Quell-URL oder das Quellprotokol übernimmt und den korrekten Datei-Handler instanziiert.
Apache Commons VFS spricht dieses Problem an, obwohl eine schnelle Überprüfung nicht zeigte, dass es SCP oder SMTP tun wird. Commons NET macht SMTP, aber ich weiß nicht, dass Sie die gemeinsame Schnittstelle aus der Box bekommen können. Für SCP , hier sind einige Möglichkeiten.
Die letzte Zeile scheint zu sein, die VFS-Implementierung zu überprüfen und zu sehen, ob es etwas für Sie tut, vielleicht können Sie es für verschiedene Protokolle erweitern. Wenn es in Bezug auf Ihre Schnittstelle nicht angebracht ist, werden Sie wahrscheinlich alle Remotedateireferenzen als Zeichenfolgen und nicht als Dateiobjekte und insbesondere als Zeichenfolge verwenden, die einen URI darstellt, der auf den fernen Standort verweist und Ihnen sagt, welches Protokoll verwendet werden soll / p>
Ich arbeite an einem Problem, das Ihrem sehr ähnlich ist, ich konnte keine Open-Source-Lösung finden, deshalb versuche ich, selbst eine Lösung zu skizzieren. Das ist, was ich mir ausgedacht habe.
Ich denke, Sie sollten InputSources und OutputSources als verschiedene Dinge darstellen, wie
%Vor%Dann sollten Sie eine Bewegung haben, um zu beschreiben, welcher Eingang zu welchem Ausgang gehen soll.
%Vor%Eine Klasse zur Beschreibung der Liste der zu erstellenden Bewegung.
%Vor%Und dann eine Klasse, um die Arbeit selbst durchzuführen.
%Vor%Der Code, der dies verwenden würde, würde folgendermaßen funktionieren:
%Vor%Wenn Sie unsere Ansichten zu diesem Thema per E-Mail austauschen möchten, senden Sie mir einfach eine E-Mail an (mein Spitzname) @ gmail dot com.
HINWEIS: Der Code ist nur eine Skizze: -)
Bitte nutzen Sie JCraft. Öffne den "sftp" -Kanal und probiere das aus.