因此,我已经将文件上传到我的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.Exists与Blob.DeleteIfExists总是返回false?
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
| 归档时间: |
|
| 查看次数: |
2245 次 |
| 最近记录: |