Are there multiple reasons for Azure error: "The specified resource does not exist"?

Are there multiple reasons for Azure error: "The specified resource does not exist"?

我有一个包含大量用户及其上传文件的项目。数据库有所有可用的文件,但大约一年前,当将项目连接到 Azure 并迁移文件时,一些文件在这个过程中被遗忘了。虽然代码现在在将文件上传到数据库时会自动将文件上传到 Azure,但尝试删除一些旧文件会导致问题。

目前我的代码首先检查 Azure 删除,然后决定从数据库中删除文件。尝试删除 Azure 中不存在的文件时,我收到错误消息:

StorageError: The specified resource does not exist.

这意味着,当前逻辑也不会从数据库中删除它。我总是可以忽略 Azure 的错误并将其删除,但我不知道最好和最安全的方法是什么。

最简单的方法可能是无论如何都删除文件

if (!error) { 
    deleteFile(); 
} else {
    console.log("Azure failed, deleting anyways", error);
    deleteFile();
}

或仅删除它,如果错误是上述错误。

if (!error) { 
    deleteFile(); 
} else if (error.message === "The specified resource does not exist") {
    console.log("Resource doesn't exist, deleting anyways", error);
    deleteFile();
}

但是我对错误信息了解不够。是否有其他原因会收到相同的错误消息并有可能在错误情况下删除文件?或者还有其他不应该这样做的原因吗?我使用错误消息搜索了网络,但发现了很多关于权限的帖子,所以这会导致任何安全问题吗?

有 2 个可能的原因可以得到 StorageError: The specified resource does not exist.:

  1. Blob 不存在并且
  2. 该 blob 的 Blob 容器不存在。

如果您由于任何其他原因(例如,不正确的授权、租用的 blob 等)无法删除 blob,您将收到不同的错误消息。