프로젝트에서 나는 ftp 액세스 만 할 수있는 파일에 http 액세스를 제공해야합니다. 이 파일은 파일을 다운로드해야하지만 http 만 지원하는 외부 서비스로 사용됩니다. 아래 코드를 시도했지만 CPU/메모리 사용량이 지붕을 통해 천천히 감소합니다. 어떤 제안?간단한 ftp 다운로더/http 프록시
using System;
using System.Web;
using System.Net;
using System.IO;
public class ftpproxy : IHttpHandler
{
// ftpproxy.ashx?src=ftp://username:[email protected]/staticfiles/foo.f4v
public void ProcessRequest (HttpContext context) {
WebClient wc = new WebClient();
string src = context.Request.QueryString["src"];
using (Stream instr = wc.OpenRead(src))
{
instr.CopyTo(context.Response.OutputStream);
}
}
public bool IsReusable {
get {
return false;
}
}
}
고맙습니다!
오, 이들은 (몇 기가에 메가 수백) 큰 파일
'WebClient'를 사용하는 블록에서도 래핑 해 보았습니까? –
또한 코드가 현재 작동하는 방식으로 메모리에 메모리를 모두로드 한 다음 메모리에서 디스크로 씁니다. 메모리로드를 줄이려면 가끔 디스크에 기록해야합니다. – Origin
나는'CopyTo'가 기본적으로 사용하는 4K 버퍼를 사용하여 입력 스트림에서 곧바로 복사 할 수있는 방법이 있었으면 좋았을 것입니다. –