gpt4 book ai didi

asp.net - Azure 管理中断/部分 Blob 上传

转载 作者:行者123 更新时间:2023-12-02 04:17:06 26 4
gpt4 key购买 nike

我正在使用以下方式将 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);

最佳答案

将文件作为 block blob 上传时,有两种可能的情况:

  1. 文件上传时未分割成 block - 假设用户上传文件时未分割成 block ,并且在上传过程中用户关闭了浏览器。在这种情况下,什么也不会发生,因为 blob 尚未保存在 blob 存储中。
  2. 文件以 block 的形式上传 - 这是以 block 的形式上传大文件的情况。假设上传一些 block 并在用户终止上传过程之后的场景。在这种情况下,有两种可能的解决方案:

1) 您不执行任何操作 - 如果您不执行任何操作,则已上传但未提交的 block 将在 7(或 14)天后被存储服务自动删除。这种方法的缺点是您需要为这些天的这些字节付费。

2) 您可以通过编程方式删除未提交的 blob - 您可以获取容器中未提交的 blob 的列表并删除这些 blob。我建议的一件事是,您找到在一段时间内未修改的未提交的 blob,这样您就不会删除仍在上传的 blob。

更新

我有机会玩未提交的 Blob 。当您使用 BlobListingDetails.UncommittedBlobs 列出 blob 时,它将返回已提交和未提交的 blob。识别未提交 blob 的一种方法是检查它的 ETag属性(property)。在我的小实验中,我发现ETag属性(property)将是 null且 Blob 长度为 0 bytes如果有未提交的 blob。

enter image description here

关于asp.net - Azure 管理中断/部分 Blob 上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33062776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com