간단한 배경 : Azure Blob 저장소에 파일을 저장하는 웹 서비스가 있습니다. 서비스 사용자는 여러 파일을 한 번에 다운로드 할 수 있습니다. 다운로드되는 모든 파일의 총 파일 크기가 비교적 작 으면 내 서버의 파일을 ZIP하여 해당 ZIP 파일을 반환합니다. 여기서 아무런 문제가 없습니다.브라우저에서 Azure Blob 저장소의 파일을 순차적으로 다운로드하십시오.
시나리오 : 예를 들어 사용자가 각각 1GB 인 3 개의 파일을 다운로드하려는 경우 이러한 파일을 서버로 다운로드하는 것이 현실적이지 않은 경우 ZIP 파일을 압축 한 다음 브라우저로 ZIP 파일을 반환합니다. 따라서 이러한 시나리오의 경우 Azure Blob 저장소 URL을 브라우저에 반환하고 사용자가 Azure Blob 저장소에서 직접 파일을 다운로드하도록하여 서버에 부담을주지 않도록합니다.
문제점 : 현재 브라우저는 이러한 URL을 모두 수신하고 즉시 다운로드합니다. 이 파일들을 순차적으로 다운로드 할 방법이 필요합니다. 따라서 브라우저는 BLOB 저장소 URL 목록을 받아 한 번에 하나씩 다운로드합니다. 그러나 하나의 다운로드가 완료되어 다른 하나가 시작할 수있을 때 브라우저에서 어떻게 감지 할 수 있는지 잘 모릅니다.
내가이 문제에 어떻게 접근해야하는지에 대한 조언이나 제안은 언제나 환영합니다.
편집 : 내 프런트 엔드 다운로드 ID 년대의 목록을 받아 당신은 jquery.fileDownload 라이브러리 Promise
으로 시도 할 수
for(var i = 0; i < listOfDownloads.length; i++) {
//Go direct to Azure blob storage for each ID in list of IDs
//This immediately begins a download direct from blob storage
window.location.href = {azure blob storage URL};
//Find way of detecting when download complete so can move on to next
}
이 파일을 한 번에 다운로드하는 방법을 보여주는 코드가 있으므로이 시점부터 시작할 수 있습니다. –
이러한 파일을 다운로드하는 방법에 대한 코드는 없습니다. 이것은 Azure BLOB 저장소 URL에 대한 문자 그대로 GET 요청입니다. –
어떻게 GET 요청을했는지, show code : jQuery를 통해 본 것이거나 다른 것인가? –