2016-11-10 5 views
0

TL; DR;cloudBlockBlob.OpenWrite()을 사용할 때 SAS를 갱신해야합니까? 그렇다면 어떻게? blob.OpenWrite()를 사용하여 나는 물방울에 ZIP 아카이브를 업로드 관리 Upload Big ZipArchive-MemoryStream to Azure스트림에서 업로드하여 BlockBlob 용 Sas 갱신

: 공유 액세스 서명이 같은 있어야하는데

CloudBlockBlob blob = container.GetBlockBlobReference(SAS); 
using (ZipArchive zArch = new ZipArchive(blob.OpenWrite(), ZipArchiveMode.Create)) 
{ 
    ZipArchiveEntry entry = zArch.CreateEntry("BigFile", CompressionLevel.Optimal); 
    using (Stream stream = entry.Open()) 
    { 
     SaveBigFileToStream(stream); 
    } 
} 

는의 후속-질문입니다 가능한 한 수명이 짧음

내 질문 이제 SAS가 만료되지 않도록 어떻게해야합니까? 업로드가 SAS의 유효성을 한 번만 확인합니까?

+1

이것은 테스트하기가 매우 힘들지 않습니다. 왜 10 초를 맞춰서 어떻게되는지보십시오. 당신은 누군가가 그들의 머리 꼭대기에서 답을 알고 있는지보기 위해 기다리는 동안 그것을 시도 할 수 있습니다. – juunas

+0

그래, 그래, 좋은 생각 이네.). 그러나 내가 그것을 리프레쉬 할 필요가 있음을 알았더라도, 나는 어떻게 ^^ 모르지만 최선을 희망한다. (나는 갱신 할 필요가 없다.) –

답변

1

대용량 파일 하나를 Azure Blob Service에 업로드하는 것이 개별적으로 인증되는 많은 HTTP 요청으로 이루어 지므로 업로드하는 동안 SAS가 만료되지 않도록해야합니다.

+0

고마워. , 알아 둘만한. 하지만 C# Azure-Api에서 어떻게 처리 할 수 ​​있습니까? SasEndpoint를 설정할 수 있습니까? 또는 현재 BLOB에 새로운 Sas가 있다는 것을 업로드하는 Blob을 어떻게 말할 수 있습니까? 감사합니다 Flo :) –

+0

페이지를 하나씩 넣음으로써 업로드 프로세스를 제어한다면 원하는 때에 언제든지 SAS를 갱신하고 다음 요청을 위해 새 SAS를 사용할 수 있습니다. 그러나 단순히 UploadFile 또는 UploadStream을 호출하면 중간에 SAS를 변경할 수 없습니다. –

+0

그래서 업로드 절차를 변경해야합니까? 즉, 코드 예제처럼 스트림에서 더 이상 업로드 할 수 없다는 뜻입니까? –