Din*_*uka 2 asp.net azure azure-storage asp.net-web-api azure-mobile-services
我正在使用以下方式将 bob 上传到我的 azure 云存储。我面临的问题是,如果用户退出 Web 应用程序或上传被中断,部分上传的 blob 仍会保留在存储中。在 Azure 中处理中断的 blob 上传的方法是什么?
代码:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(cloudString);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
container.CreateIfNotExists();
container.SetPermissions(
new BlobContainerPermissions
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
CloudBlockBlob blockBlob = container.GetBlockBlobReference(uniqueBlobName);
blockBlob.UploadFromByteArray(f, 0, f.Length);
Run Code Online (Sandbox Code Playgroud)
将文件作为块 blob 上传时,有两种可能的情况:
1)你什么都不做- 如果你什么都不做,上传但未提交的块会在 7(或 14)天后被存储服务自动删除。这种方法的缺点是你会为那些日子支付这些字节。
2)您可以以编程方式删除未提交的 blob - 您可以获取容器中未提交的 blob 列表并删除这些 blob。我建议的一件事是,您可以找到一段时间内未修改的未提交 Blob,这样您就不会删除仍在上传的 Blob。
更新
我有机会玩未提交的 blob。当您使用 列出 blob 时BlobListingDetails.UncommittedBlobs,它将返回已提交和未提交的 blob。识别未提交的 blob 的一种方法是检查它的ETag属性。在我的小实验中,我发现在未提交的 blob 的情况下,ETag属性将是nullblob 长度0 bytes。
| 归档时间: |
|
| 查看次数: |
1223 次 |
| 最近记录: |