shaded.databricks.org.apache.hadoop.fs.azure.AzureException: 安装后尝试列出目录时出现异常

shaded.databricks.org.apache.hadoop.fs.azure.AzureException: An exception while trying to list a directory after mounting

我低于异常,

shaded.databricks.org.apache.hadoop.fs.azure.AzureException: java.util.NoSuchElementException: 枚举结果时出错,查看原始异常详情

首先我将目录挂载到 dbfs 中,如下所示,

dbutils.fs.mount(
  source = f"wasbs://{containerName}@{storageAccount}.blob.core.windows.net/",
  mount_point = "/mnt/a",
  extra_configs = {f"fs.azure.sas.{containerName}.{storageAccount}.blob.core.windows.net": sasKey}
)

然后我做了,

dbutils.fs.ls("/mnt/a")

我明白以下原因,

Caused by: java.util.NoSuchElementException: 枚举结果时发生错误,查看原始异常以获取详细信息。 在 hadoop_azure_shaded.com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:113) 在 shaded.databricks.org.apache.hadoop.fs.azure.StorageInterfaceImpl$WrappingIterator.hasNext(StorageInterfaceImpl.java:158) 在 shaded.databricks.org.apache.hadoop.fs.azure.AzureNativeFileSystemStore.listInternal(AzureNativeFileSystemStore.java:2444) ... 41 更多 Caused by: hadoop_azure_shaded.com.microsoft.azure.storage.StorageException: 此请求无权使用此权限执行此操作。 在 hadoop_azure_shaded.com.microsoft.azure.storage.StorageException.translateException(StorageException.java:87) 在 hadoop_azure_shaded.com.microsoft.azure.storage.core.StorageRequest.materializeException(StorageRequest.java:305) 在 hadoop_azure_shaded.com.microsoft.azure.storage.core.ExecutionEngine.executeWithRetry(ExecutionEngine.java:196) 在 hadoop_azure_shaded.com.microsoft.azure.storage.core.LazySegmentedIterator.hasNext(LazySegmentedIterator.java:109)

有人可以帮我解决这个问题吗?

真正的错误是:“此请求未被授权使用此权限执行此操作”- 最可能的原因是您没有不同于“贡献者”权限的“Blob 贡献者”权限这是在您创建存储帐户时设置的。

发生这种情况的原因是错误的 SAS 密钥配置没有容器的所有权限。为正确的 SAS 密钥提供所有权限后,该问题已得到解决。