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!