C# 使用简单http调用验证azure存储blob中的文件或文件夹位置

C# 使用简单http调用验证azure存储blob中的文件或文件夹位置,c#,azure,azure-storage-blobs,C#,Azure,Azure Storage Blobs,我们需要验证azure blob存储容器中的文件夹或文件位置 文件夹路径示例:wasbs://@.blob.core.windows.net/ 文件路径示例:wasbs://@.blob.core.windows.net// 在继续我的业务逻辑之前,要验证文件或文件夹是否存在 是否有任何方法可以使用URI验证路径?而不是使用存储包 注意:我们不允许使用SAS令牌访问存储路径。 但是,我们可以使用存储密钥或连接字符串从应用程序代码连接到存储帐户。wasb是Azure blob存储之上与hdfs兼容

我们需要验证azure blob存储容器中的文件夹或文件位置

文件夹路径示例:wasbs://@.blob.core.windows.net/ 文件路径示例:wasbs://@.blob.core.windows.net//

在继续我的业务逻辑之前,要验证文件或文件夹是否存在

是否有任何方法可以使用URI验证路径?而不是使用存储包

注意:我们不允许使用SAS令牌访问存储路径。
但是,我们可以使用存储密钥或连接字符串从应用程序代码连接到存储帐户。

wasb是Azure blob存储之上与hdfs兼容的API,如果您使用HTTP://,您可能可以检查路径和得到的HTTP响应,404可能路径/文件不存在,200,文件路径存在。我希望这有帮助

更新: 感谢@Gaurav的深刻评论,我还添加了一个在python中检查blob状态的示例,您也可以在其他语言中执行此操作,您只需插入所需信息:存储帐户名称、密钥、容器名称、blob名称,如果blob存在或不存在,您将返回一个布尔值:

from azure.storage.blob import BlockBlobService
block_blob_service = BlockBlobService(account_name='', account_key='')

def blob_exists():

        container_name = ""
        blob_name = ""

        exists=(block_blob_service.exists(container_name, blob_name))
        return exists
blobstat = blob_exists()
print(blobstat)

Adam…如果Blob容器的ACL是私有的,那么如果您只是尝试对Blob URL执行
get
操作,您也会返回404错误。更好的选择是执行授权的
GET
请求。在.Net SDK中执行类似于
Exists
GetBlobProperties
的操作应该可以做到这一点。感谢Gaurav,我在python中添加了一个示例来检查blob是否存在,应该根据客户的需要轻松更改为.Net。提供的答案对您有帮助吗?请标记为答案,以帮助社区找到相关答案。