续传Sas for BlockBlob并从流上传
TL; DR;使用cloudBlockBlob.OpenWrite()
时需要更新SAS吗?如果是,如何?续传Sas for BlockBlob并从流上传
这是一个后续,问到:使用blob.OpenWrite()
Upload Big ZipArchive-MemoryStream to Azure
我设法压缩ZIP档案上传至斑点:
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吗?
您需要确保SAS在上传过程中不会过期,因为将一个大文件上传到Azure Blob服务是由许多单独进行身份验证的HTTP请求组成的。
谢谢, 很高兴知道。但是,我将如何在C#Azure-Api中执行此操作,是否可以设置SasEndpoint?或者我该如何告诉Blob,目前正在上传他拥有新的Sas?祝好Flo :) –
如果您通过逐页放置页面来控制上传过程,您可以随时更新SAS并在下次请求时使用新的SAS。但是,如果您只是简单地调用UploadFile或UploadStream,则不能在中间更改SAS。 –
所以我不得不改变上传的程序?这意味着我无法再从Stream中上传,就像我的代码示例中那样? –
这听起来不太难听:)为什么不把它设置为10秒钟,看看会发生什么?你可以尝试这样做,而你等待看看是否有人知道他们头顶的答案。 – juunas
好吧,这是一个伟大的想法:)但即使我知道我需要刷新它,我不知道如何^^,但让最好的希望(我不需要更新:)) –