无法从 Blob 存储下载数据。获取 404 返回

Unable to download data from Blob storage. Getting 404 returned

我正在使用 Python Azure 函数,当我将 blob 添加到存储容器时会调用该函数。函数触发正常,但我在尝试下载 blob 时收到 404 响应。

blob 资源确实存在,因为我可以在 Azure 门户中看到它。 我还公开了该容器。

令人困惑的是上传工作正常。

def get_data_from_azure(blob_name, default=None):
try:
    azure_connection_string = os.getenv('AzureWebJobsStorage')
    container_name = os.getenv('ContainerName')
    blob_service_client = BlobServiceClient.from_connection_string(azure_connection_string)
    blob_client = blob_service_client.get_blob_client(container=container_name, blob=blob_name) 
    download_stream = blob_client.download_blob() # <----- FAILS
    data = download_stream.readall()
    return data

except:
    return default



def main(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob \n"
             f"Name: {myblob.name}\n"
             f"Blob Size: {myblob.length} bytes")

username = myblob.name.split('/')[2]

data = get_data_from_azure(blob_name=myblob.name)

您可以检查Blob容器的安全设置,可能是您没有足够的访问权限。

在 Azure 门户面板中 select

  • Storage account >
  • 来自 Blob service 部分 Select “Blob” >
  • Select 您要更改访问权限的一个或多个 Blob >
  • Select "Access policy" >
  • 从下拉菜单中select“Blob”或“Container”根据您的需要匿名访问