Azure CloudBlockBlob.Exists()方法始终返回false

use*_*er1 5 c# azure

因此,我已经将文件上传到我的Azure存储帐户中,现在我正试图将其删除,因此我有了方法。

try
{
    var exists = Blob.Exists(); //Always False
    var t = Blob.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots, null, null, new OperationContext());
    if (!t.Result) // t.Result is Always False
    {
         Blob.DeleteAsync(DeleteSnapshotsOption.IncludeSnapshots, null, null, new OperationContext());
    }
}
catch (Exception ex)
{
    //No 404 error thrown for DeleteAsync (Proves blob must exist)
}
Run Code Online (Sandbox Code Playgroud)

但是Blob.Exists()即使我可以通过门户看到存储帐户中的Blob,我的方法也始终返回false。Exist方法实际上有什么作用?msdn提供的唯一信息是:

检查斑点的存在。

在该DeleteIfExistsAsync方法返回false 之后,因为显然我不使用该blob DeleteAsync并将其从存储帐户中删除,更重要的是不会抛出404错误,如果没有要删除的blob或访问权限很高,通常会引发404错误不正确

为什么Blob.ExistsBlob.DeleteIfExists总是返回false?

use*_*er1 3

SharedAccessSignature这是我之前遇到的问题

var sas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
          {
              Permissions = SharedAccessBlobPermissions.Write | SharedAccessBlobPermissions.Delete,
              SharedAccessExpiryTime = DateTime.UtcNow.AddMinutes(Convert.ToDouble(ConfigurationManager.AppSettings["SharedAccessSignatureExpiryTimeOffset"]))
          });
Run Code Online (Sandbox Code Playgroud)

但我需要添加SharedAccessBlobPermissions.Read到我的SharedAccessSignature. 有了额外的读取权限,Exists()现在返回 true