소비자가 파일을 다운로드 할 수있는 webservice를 만들려고합니다 (매우 큰 파일 일 수 있음). 서버에서는 소비자에게 다시 보내야 할 파일이 많기 때문에 모든 파일을 하나의 큰 zip 파일로 압축하여 사용자에게 다시 스트리밍합니다. 바로 지금, 내 웹 서비스는 파일을 압축하기 시작합니다. 요청이 들어 오면 압축 파일을 만들고 압축을 풀 수 있습니다. 압축에는 많은 시간이 걸릴 수 있으며 요청이 시간 초과 될 수 있습니다. 그런 상황을 피하려면 어떻게해야합니까? 내 솔루션은 지금 데이터를 작은 zip 파일로 분리하고 소비자에게이 작은 파일이 많을 것이라는 응답을 보내고 소비자가 개별적인 작은 파일을 요청하도록합니다. 그래서 1GB의 zip 파일이 있다면 10 개의 작은 zip 파일로 나누어 소비자가 10 개의 요청에서 더 작은 파일을 요청하도록 요청할 것입니다. 이것이 올바른 접근 방법입니까? 어떤 문제에 직면 할 수 있습니까? 그러한 문제를 가진 사람은 누구입니까? 당신의 경험을 공유 할 수 있다면 기쁠 것입니다. 또한 완전히 압축하지 않고 zip 파일을 스트리밍 할 수 있습니까?C# webservice로 큰 파일을 다운로드하십시오.
답변
요청 및 배달을 비동기 작업으로 처리합니다.
클라이언트는 한 가지 방법으로 파일을 요청할 수 있습니다. 또 다른 방법은 클라이언트가 파일 패키징의 상태를 알 수있게합니다 (아직 다운로드 할 준비가되었는지 여부). 세 번째 방법은 실제로 파일을 다운로드 할 수 있습니다.
편안한 접근 방법을 살펴 보는 것이 좋습니다. 비누 웹 서비스가 아닌. OrbMan은 asynch approach가 가장 좋을 것이라고 제안했습니다. 의 위치를 알 수 (301)의 응답 코드 '수용'과 위치의 위치 헤더 값을 가진 HTTP 응답을 반환 http://yourlocation/generatefile 어떤 (게시물로 호출 할 때) = http://yourlocation/generatefile/id00124 : 당신이 자원 노출 될 수 나머지
자료.
그런 다음 http://yourlocation/generatefile/id00124 리소스 (헤더 요청 일 수도 있음)를 폴링하여 처리/완료 상태를 얻을 수 있습니다.
처리가 완료되었습니다. 파일을 다운로드하려면 http://yourlocation/generatefile/id00124을 타십시오. 응답 http 메시지는 파일 및 형식 (예 : 암호화 및 압축 유형)을 식별해야하므로 모든 소비자는이를 읽는 방법을 알고 있습니다.
이것은 장기간 실행되고 soap anbd general xml 이외의 형식으로 데이터를 반환하는 문제에 대한 좋은 해결책입니다.
나는 이것이 내가 파일을 얻는 방법의 일환으로 호출 클라이언트에서 폴링 것
좋습니다. 질문이 있습니다. 리소스 상태를 폴링하려면 어떻게해야합니까? 이것이 너무 바보 같은 질문이라면 유감이지만 C# 및 Webservices 작업을 시작했습니다. – Debby
도움이되기를 바랍니다. 내가 참조 할 수있는
- 1. 큰 파일을 자바를 사용하여 다운로드하십시오.
- 2. 서블릿을 사용하여 큰 파일을 다운로드하십시오.
- 3. webservice로 큰 psd를 보내는 방법
- 4. 프로젝트 자원에 파일을 다운로드하십시오.
- 5. C# HTTP 디렉토리의 모든 파일을 다운로드하십시오.
- 6. j2me에서 jar 파일을 다운로드하십시오.
- 7. 파일을 서버 plist에서 다운로드하십시오.
- 8. 서버에 저장하지 않고 파일을 다운로드하십시오.
- 9. App Engine에서 파일을 강제로 다운로드하십시오.
- 10. 파일을 PAMIE와 (과) 함께 다운로드하십시오.
- 11. 파이썬으로 ASP 폼에서 파일을 다운로드하십시오.
- 12. cakePHP - 컨트롤러를 통해 파일을 다운로드하십시오.
- 13. DownloadManager : 캐시 파티션에 파일을 다운로드하십시오.
- 14. Maven을 사용하여 JAR 파일을 다운로드하십시오.
- 15. 응답 파일을 사용하여 excel 파일을 다운로드하십시오.
- 16. Webservice로 보낸 데이터 압축
- 17. Python-FTP 디렉토리의 모든 파일을 다운로드하십시오.
- 18. 파일을 안전하게 업로드/다운로드하십시오. winforms C# 및 asp.net
- 19. .NET의 HttpWebRequest를 사용하여 여러 파일을 연속적으로 다운로드하십시오.
- 20. (C#) 주어진 URL에서 내장 플래시를 다운로드하십시오.
- 21. AppEngine을 WebService로, S3를 저장소로 사용
- 22. IIS를 통해 네트워크 공유에있는 파일을 강제로 다운로드하십시오.
- 23. 레일 : "연결 프로그램"옵션을 사용하여 파일을 다운로드하십시오.
- 24. php를 통해 gzip 파일을 다운로드하십시오. cURL
- 25. 사용자 다운로드 폴더에 CSV 파일을 바로 다운로드하십시오.
- 26. Javascript JQuery 링크를 사용하여 txt 파일을 다운로드하십시오.
- 27. 안드로이드 - 서버의 폴더에서 모든 파일을 다운로드하십시오.
- 28. 자바 스크립트에서 텍스트 파일을 생성하고 다운로드하십시오.
- 29. Quartz scheduler로 FTP를 통해 파일을 다운로드하십시오.
- 30. 자바 코드를 사용하여 URL을 전달하여 파일을 다운로드하십시오.
어떤 예를 거기에 ...이 내용은 사이비입니다
,하지만 난 그게 말이 희망 : 클라이언트 코드는 다음과 같이 흐를 수 있는가? – Debby