В настоящее время я работаю над разработкой некоторого набора кодов для отображения всех больших двоичных объектов в указанном контейнере Azure с помощью веб-интерфейса.Я ожидаю, что окончательный результат будет примерно таким:
Я начал с создания фиктивной учетной записи хранения и заполнил ее некоторыми фиктивными файлами длямне поиграться.
https://alicebob.blob.core.windows.net/documents
├── docx
│ ├── 201801_Discussion.docx
│ ├── 201802_Discussion.docx
├── xlsx
│ ├── 201801_Summary.xlsx
│ ├── 201802_Summary.xlsx
│ ├── 201803_Summary.xlsx
├── 201801_Review.pdf
├── 201802_Review.pdf
├── 201803_Review.pdf
Чтобы разработать функцию листинга файлов, я использую клиентскую библиотеку Azure Storage JavaScript из здесь и помещаю все необходимые коды (.html
и .js
файлов) в статическом веб-сайте Azure $web
и установите index.html
в качестве Index document name
и Error document path
в конфигурации статического веб-сайта.
https://alicebob.z23.web.core.windows.net/
├── azure-storage.blob.min.js
├── azure-storage.common.min.js
├── index.html
Проблема заключается в том, что функция выполняет листингтолько или listBlobsSegmentedWithPrefix
или listBlobDirectoriesSegmentedWithPrefix
.Поэтому, в моем случае, я предполагаю, что было бы непросто перечислить все большие двоичные объекты и каталоги в хорошо структурированном / древовидном формате.
Мой текущий подход состоит в том, чтобы я обманул код, чтобы продолжать использовать listBlobDirectoriesSegmentedWithPrefix
до тех пор, пока в каталоге больше не будет каталога для списка, продолжайте перечислять, используя listBlobsSegmentedWithPrefix
Пока я вполне удовлетворен тем, что мой код может перечислять все BLOB-объекты на уровне листа, а также перечислять всекаталоги, если это не на уровне листьев.Вы можете взглянуть на список BLOB здесь и не стесняйтесь пойти на 'Просмотр исходного кода' , чтобы увидеть коды, которые я построил до сих пор.
Единственная проблемая сталкиваюсь с тем, что этот набор кода не может перечислять BLOB-объекты, если он не находится на уровне листа.Например, он не может перечислить эти большие двоичные объекты в alicebob
учетной записи хранения:
├── 201801_Review.pdf
├── 201802_Review.pdf
├── 201803_Review.pdf
Это ожидаемая проблема, так как я не запускаю listBlobsSegmentedWithPrefix
, если это не на уровне листа.Причина в том, что он будет производить вывод с чем-то вроде этого, что не то, что я хочу:
├── docx/201801_Discussion.docx
├── docx/201802_Discussion.docx
├── xlsx/201801_Summary.xlsx
├── xlsx/201802_Summary.xlsx
├── xlsx/201803_Summary.xlsx
├── 201801_Review.pdf
├── 201802_Review.pdf
├── 201803_Review.pdf
Есть какие-нибудь предложения о том, как преодолеть эту проблему?Реальная реализация потребовала бы огромного количества данных, поэтому я думаю, что простое if-then-else не будет эффективным в этом случае.
извините за длинное описание, но я просто хочу описать своепроблема как можно яснее:)