2013-03-11 3 views
0

Azure blob 저장소에서 blob을 가져 와서 파일을 사용자에게 반환하여 다운로드하려고합니다.azure blob 저장소에서 blob을 저장하지 않고 Blob을 반환합니다.

지금 내가 뭘하려고, 푸른에서 파일을 얻을 로컬로 저장하고, 정적 파일을 사용하여의 파일을 반환하는 것입니다 :

def getDownload(filename): 
     try: 
      file = blob.get_blob('picture', filename) 
      with open(filename, 'w') as f: 
       f.write(file) 
     except: 
      abort(400, 'Download blob fail') 
     return static_file(filename, root='.', download=filename) 

내가에 스트리밍 할 일을하려고하고 사용자는 먼저 서버에 파일을 저장하지 않아도됩니다.

어떻게하면됩니까?

+0

최종 사용자에게 제공하기 전에 서버를 통해 라우트해야하는 이유가 있습니까? – Nico

+0

검증을 통해 제한된 사람들이 파일을 다운로드 할 수 있습니다. – Alvin

답변

1

불행하게도 나는 어떤 파이썬 예제 코드를 가지고 있지만, 여기 당신이 확인을 위해 무엇을 할 수 없습니다 :

  1. 클라이언트가 웹에 요청을 보내는 용기가 공개적으로 액세스 할 수 없습니다 있는지 확인하십시오 웹 응용 프로그램에 BLOB 내의 지정된 파일에 대한 응용 프로그램
  2. 해당 클라이언트가 해당 BLOB에 액세스 할 수 있는지 확인하십시오 (그렇지 않은 경우 401 오류 반환).
  3. 짧은 시간 동안이 BLOB에 대한 공유 액세스 서명을 작성하십시오. 약 5 분 소요)
  4. 반환 위치 - 헤더에 블롭에 URL을 포함하는 클라이언트로 303 (기타 참조) HTML 상태 코드 예

:

클라이언트 http://myservice.cloudapp.net/blobs/somefile.ext을 요청하고 리소스에 액세스 확인됩니다. 그런 다음 http://mystorage.blob.core.windows.net/container/somefile.ext?SHARED_ACCESS_SIGNATURE으로 리디렉션됩니다. 이 링크는 해당 클라이언트에서만 몇 분 동안 사용할 수 있습니다.

+0

4. 짧은 시간 동안이 BLOB에 대한 공유 액세스 서명을 만듭니다 (약 5 분간) .... 다운로드가 완료하는 데 더 많은 시간이 걸리면 어떻게 될까요? – Alvin

+0

다운로드가 시작되면 다운로드가 계속됩니다. 그러나 다운로드는 주어진 시간 내에 만 시작할 수 있습니다. – Nico

+0

그 @ Niko에 대해 확실합니까? –

관련 문제