Share this post

내가 쓴 코드는 WebForms에서 잘 작동하지만 작은 파일에 대해 잘 작동 생각합니다 (나는 1 gb 크기의 파일을 테스트하고 잘 작동, 실제로 나는 그것이 어떤 크기에 대해 작동 생각하지만 서버 B에서 서버 A에 다운로드하기 때문에 다운로드하는 데 시간이 오래 걸립니다 다음 다운로드 사용자 컴퓨터에)을 제공합니다. 어쨌든 DotNet 코어에는 이와 같은 코드가 필요합니다. 실제로 정적 파일 서버가 필요한 경우 Razor 종속성을 제거하면 시작 시간이 빨라지고 설치 공간이 훨씬 작아지므로 Razor 기능을 컴파일하는 것이 조건부로 컴파일되었습니다. 독립 실행형 EXE를 만듭니다) 이 코드는 StaticFileFile을 설정하고 활성화된 경우 Razor 페이지 미들웨어를 설정합니다. 또한 활성화된 경우 모든 요청에서 발생되는 –ShowUrls 플래그를 통해 콘솔에 활성 URL을 에코하기 위한 선택적 인라인 미들웨어의 또 다른 비트를 추가합니다. 본질적으로 DownloadHandler.dll은 그림 1과 같이 독립 실행 형 클라이언트 (FileDownloader.exe)의 간단한 URL을 사용하여 병렬로 파일을 청크로 다운로드 할 수있는 다중 스레드 파일 다운로더로 기존 IIS 웹 서버를 변환합니다. 매개 변수(chunksize=5242880)는 선택 사항이며 포함되지 않은 경우 기본적으로 전체 파일을 하나의 청크로 다운로드할 수 있습니다. 그림 2와 그림 3은 대부분의 다른 파일 다운로드 소프트웨어와 마찬가지로 처음부터 전체 다운로드를 완전히 다시 시작하지 않고도 파일의 실패한 부분만 반복적으로 다시 시도할 수 있는 방법을 보여 줍니다. 외부 주소에서 대용량 파일을 다운로드하는 방법하지만 사용자는 내 사이트 링크를 볼 수 있습니까? 이것은 새로운 것이 아니다.

비슷한 일을 하는 NodeJS 기반 도구가 많이 있습니다. 정적 파일 제공 및 LiveReload 기능에 대한 브라우저 동기화를 위해 http-server를 사용했습니다. 그러나 브라우저 동기화에 항상 문제가 있었습니다… 그것을 기다립니다 … 동기화 😃 새로 고침을 요구하고, 플러스 일반적으로 꽤 느린 경향이있다. 감사합니다 에드워드, 아니 그들은 같은 서버에 없는, 내 사이트는 서버에 내 파일은 다른 서버에, 그들은 같은 서버 또는 심지어 같은 국가에 없습니다. 하루의 끝에서 그것은 환경 설정의 문제. 나는 이것에 대한 몇 가지 다른 사용 사례가 있다.

간단한 HTTP 서버인 dotnet 툴링은 .NET SDK가 설치되어 있는 한 모든 컴퓨터에서 도구를 쉽게 잡을 수 있기 때문에 완벽합니다. 최근에 생각해 본 한 가지 시나리오는 임의의 로컬 폴더에서 웹 콘텐츠를 쉽게 제공할 수 있는 일반 웹 서버를 구축하는 것입니다. 예, 이 작업을 수행하는 NodeJs 도구가 많이 있다는 것을 알고 있지만 지금은 .NET에서 독립 실행 형 서버를 만드는 것만큼 쉽습니다. 내 자신의 글을 쓰면 내가 필요로하는 기능을 정확하게 사용자 정의하고 제공 할 수 있습니다. 셋째, 디자인은 IIS 웹 서버를 사용하기 때문에 서버에서 제공하는 일부 기본 제공 기능의 이점을 자동으로 활용할 수 있습니다. 예를 들어, 통신은 자동으로 암호화(SSL 인증서와 함께 HTTPS 사용) 압축(gzip 압축 사용)할 수 있습니다. 그러나 이렇게 하면 서버 CPU에 너무 많은 스트레스가 발생하는 경우 매우 큰 파일에서 gzip 압축을 실행하는 것이 바람직하지 않을 수 있습니다. 그러나 서버 CPU가 추가 부하를 견딜 수 있는 경우 훨씬 작은 압축 데이터를 전송하는 효율성이 전체 시스템의 전체 처리량에 큰 차이를 만들 수 있습니다.