2016-12-01 5 views
0

Ich versuche, einen Dropbox-Link zu einer Datei output.txt herunterladen. Etwas wie folgt aus:Download einer https-Datei im Play-Framework funktioniert in der Entwicklung, aber nicht in der Produktion

URL link = new URL("https://dl.dropboxusercontent.com/1/view/XXX/file.txt"); 
ReadableByteChannel rbc = Channels.newChannel(link.openStream()); 
FileOutputStream fos = new FileOutputStream("output.txt"); 
fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE); 

Wenn ich meine App in Entwicklung läuft (das heißt activator run) das funktioniert gut. Wenn die App inszeniert und in der Produktion eingesetzt, ich eine Verbindung Timeout am link.openStream() Schritt erhalten:

play.api.UnexpectedException: Unexpected exception[ConnectException: Connection timed out] 

Ich bin in der Lage alle http-Dateien oder Websites speichern in der Produktion einzureichen. Es scheint nur auf eine beliebige https-Datei auslaufen. Irgendwelche Gedanken darüber, wie ich damit anfangen könnte?

Hat das etwas mit dem Spielen zu tun oder ist es ein Konfigurationsproblem mit meinem Apache-Server?

Dank

+0

oder ist es nicht eingeloggt? –

+0

@ScaryWombat Nope ist ein öffentlich zugänglicher Link dort sollte es keine Probleme geben – by0

+0

so ist der echte Name nicht "https: // dl.dropboxusercontent.com/1/view/XXX/file.txt" - BTW warum https? –

Antwort

0

Sie könnten das Problem mit der Konfiguration oder mit Zugriff von diesem Server zu dieser URL. Das ist ein einfacher Teil.

Sie könnten auch das Problem mit dem SSL-Zertifikat haben. Also müssen Sie es herunterladen und lokal hinzufügen oder fragen Sie die Server-Besitzer (dieser einen Server - "https://dl.drop ..."), um das Zertifikat zu beheben (es könnte ein Problem auf ihrer Seite sein).

Um sicherzustellen, dass Sie das Problem mit Zertifikaten haben - Sie den Code in dieser Frage beschrieben verwenden können Java and HTTPS url connection without downloading certificateDO diesen Code IN DER PRODUKTION NOT USE - weil Sie Sicherheit 0 sein wird, diesen Code Kraft Sie zu jedem Zertifikat vertrauen , so wird "https" natürlich "http" für Sie.

Der Grund für ein zweites Problem (ich bekam, wenn einige Male) war, dass Produktionsumgebung strengere Sicherheitseinstellungen hatte, und der Server, auf dem ich https-Ressourcen gelesen habe einige Probleme mit der Zertifizierung, wie Ablauf oder falsch wieder zertifiziert.

Verwandte Themen