Azure Blob 저장소에 저장된 파일에 대한 액세스를 제어하는 ASP.NET Azure 웹 응용 프로그램 (웹 역할)을 구축 중입니다. GET 요청에서 HttpHandler는 사용자를 인증하고이 특정 파일 및 사용자에 대해 짧은 시간 프레임 (예 : 30 분)의 공유 액세스 서명을 만듭니다. 클라이언트는 HEAD를 사용하여 업데이트 된 미디어 파일을 확인하는 미디어 플레이어이며, Last-modified 헤더가 다른 경우 GET 요청을합니다. 따라서 SAS URL을 생성하고 싶지 않고 HEAD 요청에 대한 응답으로 LAst 수정, Etag 및 Content 길이 헤더를 반환합니다. 이 나쁜 습관인가? 파일이 최신 인 경우 파일을 다시 다운로드 할 필요가 없으므로 SAS URL을 만들 필요가 없습니다."303 HTTP 헤더 응답에서"
예 요청 :
GET /testblob.zip
Host: myblobapp.azurewebsites.net
Authorization: Zm9v:YmFy
응답 :
HTTP/1.1 303 See other
Location: https://myblobstorage.blob.core.windows.net/blobcontainer/testblob.zip?SHARED_ACCESS_SIGNATURE_DATA
어떤 생각이?
클라이언트는 독점 (폐쇄) 장치이므로 클라이언트 소프트웨어를 수정할 수 없습니다. – user3336731
HEAD 요청이 GET 요청을 할 것인지 결정할 수 있도록 Last-Modfied 헤더 (클라이언트 장치가 기대하는)를 반환하도록 서비스를 구현했습니다. GET 요청에서 나는 SAS 토큰을 생성하고 하늘색 얼룩 서비스로 리디렉션합니다. 그것은 위대한 작품. 질문 : 더 좋은 방법이 있습니까? 내 DB에 모든 파일 메타 데이터가 있으므로 HEAD 요청에서 Azure에 연결할 필요가 없습니다. – user3336731