public RemoteFileDetail GetFileInfo(ResourceDetail rl) { FtpWebRequest request; RemoteFileDetail result = new RemoteFileDetail(); result.AcceptRanges = true; request = (FtpWebRequest)GetRequest(rl); request.UsePassive = true; request.Timeout = 500000; request.Method = WebRequestMethods.Ftp.GetFileSize; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.FileSize = response.ContentLength; } request = (FtpWebRequest)GetRequest(rl); request.Method = WebRequestMethods.Ftp.GetDateTimestamp; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.LastModified = response.LastModified; } return(result); }
public ResponseBase <RemoteFileDetail> GetFileInfo(ResourceDetail rl) { try { HttpWebRequest request = (HttpWebRequest)GetRequest(rl); //request.Timeout = 100000; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); RemoteFileDetail result = new RemoteFileDetail { MimeType = response.ContentType, LastModified = response.LastModified, FileSize = response.ContentLength, AcceptRanges = Compare(response.Headers["Accept-Ranges"], "bytes", StringComparison.OrdinalIgnoreCase) == 0 }; return(new ResponseBase <RemoteFileDetail>() { Denied = false, ReturnedValue = result }); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } Serilog.Log.Error(ex, "---Could not get remote file information trial number"); var responseFailed = new ResponseBase <RemoteFileDetail>() { Denied = true }; responseFailed.AddMessage(ex.Message); return(responseFailed); } }
public CalculatedSegment[] GetSegments(int segmentCount, RemoteFileDetail remoteFileInfo) { long minSize = 200000; long segmentSize = remoteFileInfo.FileSize / segmentCount; while (segmentCount > 1 && segmentSize < minSize) { segmentCount--; segmentSize = remoteFileInfo.FileSize / segmentCount; } long startPosition = 0; List <CalculatedSegment> segments = new List <CalculatedSegment>(); for (int i = 0; i < segmentCount; i++) { if (segmentCount - 1 == i) { segments.Add(new CalculatedSegment(startPosition, remoteFileInfo.FileSize)); } else { segments.Add(new CalculatedSegment(startPosition, startPosition + (int)segmentSize)); } startPosition = segments[segments.Count - 1].EndPosition; } return(segments.ToArray()); }
public ResponseBase <RemoteFileDetail> GetFileInfo(ResourceDetail rl) { try { FtpWebRequest request; RemoteFileDetail result = new RemoteFileDetail(); result.AcceptRanges = true; request = (FtpWebRequest)GetRequest(rl); request.UsePassive = true; //request.Timeout = 500000; request.Method = WebRequestMethods.Ftp.GetFileSize; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.FileSize = response.ContentLength; } request = (FtpWebRequest)GetRequest(rl); request.Method = WebRequestMethods.Ftp.GetDateTimestamp; FillCredentials(request, rl); using (FtpWebResponse response = (FtpWebResponse)request.GetResponse()) { result.LastModified = response.LastModified; } return(new ResponseBase <RemoteFileDetail>() { Denied = false, ReturnedValue = result }); } catch (Exception ex) { while (ex.InnerException != null) { ex = ex.InnerException; } var responseFailed = new ResponseBase <RemoteFileDetail>() { Denied = true }; responseFailed.Messages.Add(ex.Message); return(responseFailed); } }
public ResponseBase <List <Segment> > GetSegments(int segmentCount, long minSizeSegment, RemoteFileDetail remoteFileInfo, string fileName) { long minSize = 200000; long segmentSize = remoteFileInfo.FileSize / segmentCount; while (segmentCount > 1 && segmentSize < minSizeSegment) { segmentCount--; segmentSize = remoteFileInfo.FileSize / segmentCount; } long startPosition = 0; List <CalculatedSegment> calculatedSegments = new List <CalculatedSegment>(); for (var i = 0; i < segmentCount; i++) { calculatedSegments.Add(segmentCount - 1 == i ? new CalculatedSegment(startPosition, remoteFileInfo.FileSize) : new CalculatedSegment(startPosition, startPosition + (int)segmentSize)); startPosition = calculatedSegments[calculatedSegments.Count - 1].EndPosition; } var segments = new List <Segment>(); for (var i = 0; i < calculatedSegments.Count; i++) { Segment segment = new Segment { Index = i, InitialStartPosition = calculatedSegments[i].StartPosition, StartPosition = calculatedSegments[i].StartPosition, EndPosition = calculatedSegments[i].EndPosition, CurrentURL = fileName, CurrentTry = 0 }; segments.Add(segment); } return(new ResponseBase <List <Segment> >() { Denied = false, ReturnedValue = segments }); }
public virtual RemoteFileDetail GetFileInfo(ResourceDetail rl) { HttpWebRequest request = (HttpWebRequest)GetRequest(rl); request.Timeout = 100000; FillCredentials(request, rl); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); RemoteFileDetail result = new RemoteFileDetail { MimeType = response.ContentType, LastModified = response.LastModified, FileSize = response.ContentLength, AcceptRanges = Compare(response.Headers["Accept-Ranges"], "bytes", StringComparison.OrdinalIgnoreCase) == 0 }; return(result); }