Azure FileShare: указанный ресурс не существует - аутентификация SAS

Я пытаюсь перечислить файлы в Azure FileShare, используя SAS в Java / Scala.

У меня нет доступа к учетной записи хранения, но есть только ключ SAS для определенного общего ресурса в хранилище файлов Azure. Как получить прямой доступ к Share в Java?

Я могу перечислять каталоги и файлы в общем ресурсе с помощью Storage Explorer, загружать с помощью AZCopy или Rest Call с помощью URL общего ресурса с ключом SAS.

Практически все остальные пользователи с подобной ошибкой пытались пройти аутентификацию с использованием ключей учетной записи хранения и BlobStorage. Кажется, они имеют доступ на один уровень выше общего ресурса, то есть к учетной записи хранения. Но мне нужно напрямую подключиться к FileShare, используя SAS, который работает только для этой папки.

  val storageConnectionString =
  s"FileEndpoint=$endpoint;" + // https://xyz.file.core.windows.net
    "SharedAccessSignature=" +
    URLEncoder.encode(sas)

  val storageAccount = CloudStorageAccount.parse(storageConnectionString)

  val fileClient = storageAccount.createCloudFileClient()
  val share = fileClient.getShareReference(fshare)  //A fileshare with access
  val rootDir = share.getRootDirectoryReference()
  val files = rootDir.listFilesAndDirectories()

  files.forEach(file => println(file.getUri)) //Error: com.microsoft.azure.storage.StorageException: The specified resource does not exist.

Файлы в общем ресурсе отображаются в пользовательском интерфейсе Storage Explorer с использованием того же URI(FileShareEndpoint+"/"+fshare+"?"+ Sas).

Ожидается получение списка файлов и каталогов, но получение исключения: "Указанный ресурс не существует". Это код или невозможно через программу подключиться к общему ресурсу без предварительной аутентификации в учетной записи хранения?

0 ответов

Другие вопросы по тегам