Einzelnen Beitrag anzeigen

florian89

Registriert seit: 15. Mai 2014
10 Beiträge
 
Delphi XE5 Architect
 
#1

Datasnap REST im Apache, Download einer Datei dauert sehr lange

  Alt 18. Jun 2014, 16:16
Ich möchte über meinen REST-Webservice, den ich in einen Apache als ISAPI.dll eingebunden habe, Dateien herunterladen. Das klappt soweit, nur dauert es sehr lange.
Eine Datei (ca. 35 MB) wird aus einer Datenbank geholt und an den Client übertragen. Das dauert ca. 70 Sekunden, wenn ich die Methode des Webservice lokal aufrufe. (Übers Internet dauert es so ca. 5 Minuten!!!). Ca. 1-2 Sekunden dauert es, dann ist die Datei aus der Datenbank geholt.
Die Übertragung findet als String statt. Habe es auch schon per TStream probiert. Dauert aber genauso lang.

Hier meine Server-Methode:
Delphi-Quellcode:
function TServerMethods1.GetFile(aFile, version: string): string;
var
  stream: TMemoryStream;
begin
  stream := nil;
  result := '-1';
  try
    stream := GetFile(aFile, version);
    if stream.Size > 0 then
    begin
      StringToLogfile(logFileInfo, 'GetFile: Datei ' + aFile+ ' wurde gefunden');
      result := string(EncodeBase64(stream.Memory, stream.Size));
    end else
    begin
      StringToLogfile(logFileError, 'GetFile: Datei ' + aFile+ ' nicht gefunden');
      result := '-1814';
    end;
  finally
    stream.Clear;
    stream.Free;
  end;
end;
Kann mir jemand weiterhelfen?
Vielen Dank schon mal im Voraus!
  Mit Zitat antworten Zitat