Ste*_*bob 3 azure azure-storage azure-storage-blobs
我知道如果 blob 存在,则 CloudBlockBlob.DeleteIfExists() 返回 true,不存在时返回 false。
但是,我很好奇知道如果 blob 确实存在会发生什么,但是 Azure 中出现问题导致文件删除不会发生(我找不到有关该行为的任何文档)。
我担心它会返回 false 而不是抛出某种异常,所以我相信 blob 被删除,当它实际上仍然存在时。
简而言之,如果我得到 false 值,是否总是意味着 blob 不存在,不需要删除,如果 Azure 端出现问题,我会得到某种异常?
谢谢。
查看此方法的源代码,如果 blob 被删除,如果 blob(或 blob 容器)不存在here,您将得到。在所有其他情况下(假设 blob 已租用,因此无法删除),将引发异常。这是相关的代码:truefalse
public virtual bool DeleteIfExists(DeleteSnapshotsOption deleteSnapshotsOption = DeleteSnapshotsOption.None, AccessCondition accessCondition = null, BlobRequestOptions options = null, OperationContext operationContext = null)
{
BlobRequestOptions modifiedOptions = BlobRequestOptions.ApplyDefaults(options, BlobType.Unspecified, this.ServiceClient);
operationContext = operationContext ?? new OperationContext();
try
{
this.Delete(deleteSnapshotsOption, accessCondition, modifiedOptions, operationContext);
return true;
}
catch (StorageException e)
{
if (e.RequestInformation.HttpStatusCode == (int)HttpStatusCode.NotFound)
{
if ((e.RequestInformation.ExtendedErrorInformation == null) ||
(e.RequestInformation.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.BlobNotFound) ||
(e.RequestInformation.ExtendedErrorInformation.ErrorCode == BlobErrorCodeStrings.ContainerNotFound))
{
return false;
}
else
{
throw;
}
}
else
{
throw;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2729 次 |
| 最近记录: |