当前位置: 首页 > 知识库问答 >
问题:

无法删除触发Azure Function Blob输入绑定的Blob

胡利
2023-03-14

这是该问题的后续问题:

如何使用Azure函数删除blob?

当一个blob触发我的Azure函数时,我需要在其处理完成后将其删除。否则,容器中会出现许多斑点。

当我运行以下代码时:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connection);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("process");
var blockBlob = container.GetBlockBlobReference($"process/in/{name}"); // ==> This was the problem. See the answer for more info. 
bool deleted = blockBlob.DeleteIfExists();

方法blockBlob。DeleteIfExists()始终返回false,并且从不删除blob。

我的猜测是blob以某种方式被函数执行锁定,因为它刚刚触发了它。

[更新1]

...

[更新2]

非常感谢刘,这个问题与Azure Fundctions无关。

诀窍是block Blob。DeleteIfExist()在调用者错误发送错误路径时返回false。

更好的方法可能是使用“块Blob。删除”并找出实际问题。

有关详细信息,请参阅DeleteIfExist源代码。

https://github.com/Azure/azure-storage-net/blob/master/Lib/ClassLibraryCommon/Blob/CloudBlob.cs#L1993

另一个相关问题:Azure CloudBlockBlob。DeleteIfExists()-false是否总是意味着blob不存在?

共有1个答案

昝涛
2023-03-14

问题出在这条线上

var blockBlob = container.GetBlockBlobReference($"process/in/{name}");

blob名称应该是$"in/{name}",因为我们根据我们已经在GetContainerApplication中获得的特定容器调用GetBlockBlowRepository

重复导致存储无法找到blob。我们可能会对没有相关的提示/异常感到困惑,因为当blob不存在时,DeleteIfExists也会返回false。

 类似资料:
  • 本文向大家介绍aurelia 绑定到无线电输入,包括了aurelia 绑定到无线电输入的使用技巧和注意事项,需要的朋友参考一下 示例 基本收音机 带对象阵列的收音机 带布尔的收音机            

  • 我试图访问位于下的属性。所以基本上是一个数组,我要访问属性。 我得到以下错误。 无法处理绑定“text:function(){return process().parent[0].Id}” 无法读取未定义的属性“Id” 我尝试了以下不起作用的方法: 请帮助我如何访问ID。

  • 问题内容: 有没有一种方法可以删除带有特定作业的预定触发器?似乎删除触发器的唯一方法是删除整个作业,然后重新注册该作业并触发。 我有一份可能有100多个触发器的作业,我真的不想删除该作业,而只需要删除1个触发器就重新注册所有触发器。 另外,是否有一种方法可以在配置触发器后立即停止调度程序执行作业? 谢谢 问题答案: 尝试 这接受触发器和组名作为参数,并且只会删除指定的触发器,而不是作业。 Quar

  • 问题内容: 范围:两个表。创建新的顾客时,他们会将有关他们的一些信息存储到第二张表中(这也使用触发器完成,它可以按预期工作)。这是我的表结构和关系的示例。 表1-> 顾客 表2-> patron_info 管理员可以管理顾客。当他们选择移走顾客时,将顾客从 桌子1 移开。此时, 表2 没有任何反应。 我只是想创建一个触发器,以便在表1的项目已删除时从表2中删除。这是我尝试过的… 最初,我尝试删除触

  • 问题内容: 我有一个绑定到我的EventTracker bean的JTable,本质上是一个列表的包装,我将仅将其用作附加/清除(即,简单的日志)。问题是,当我将条目添加到列表中并尝试触发事件时,我看不到任何更改。我正在使用NetBeans IDE。 EventTracker bean被添加到视图中并实例化为eventTracker1。从那里,我右键单击表格,然后选择“表格内容…”。表模型已绑定到

  • 问题内容: 我想知道是否有可能在使用CSS单击文本输入/文本区域时删除默认的蓝色和黄色发光? 问题答案: textarea, select, input, button { outline: none; } 虽然,有人认为保留光晕/轮廓实际上对可访问性有益,因为它可以帮助用户查看当前聚焦于哪个Element。 您也可以使用伪元素’:focus’来仅在用户选择了输入时定位输入。