I'm currently working on developing some set of codes to display all blobs inside specified Azure Container using web front-end. I'm expecting the final output to be something like this:
I started by creating a dummy storage account and populates it with some dummy files for me to play around with.
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
To develop file listing function, I'm using Azure Storage JavaScript client library from here and put all the necessary codes (.html
and .js
files) in Azure Static website $web
container and set index.html
as Index document name
and Error document path
in the Static website configuration.
https://alicebob.z23.web.core.windows.net/
├── azure-storage.blob.min.js
├── azure-storage.common.min.js
├── index.html
The problem is that the function to do the listing is only either listBlobsSegmentedWithPrefix
or listBlobDirectoriesSegmentedWithPrefix
. So, in my case, I assume it wouldn't work straightforwardly to list all the blobs and directories in a well-structured / tree format.
My current approach is that I trick the code to keep using listBlobDirectoriesSegmentedWithPrefix
until there is no more directory to list inside, then continue to list using listBlobsSegmentedWithPrefix
So far I'm quite satisfied that my code can list all the Blobs at the leaf-level and also list all the directories if it isn't on the leaf-level. You can take a look at the blob listing here and feel free to go for 'View Source' to see the codes I built so far.
The only problem that I face is that this set of code fails to list the Blobs if it wasn't on the leaf-level. For example, it fails to list these blobs on alicebob
storage account:
├── 201801_Review.pdf
├── 201802_Review.pdf
├── 201803_Review.pdf
This is an expected issue as I'm not running listBlobsSegmentedWithPrefix
if it isn't on the leaf-level. The reason is that it will produces the output with something like this which isn't what I want:
├── 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
Any suggestion on how to overcome this issue? The real implementation would involves a huge amount of data so I think a simple if-then-else wouldn't be efficient on this case.
sorry for the long description but I just want to describe my problem as clear as possible :)
I want to block my UI and show a spinner while it is blocked. I tried to use the following : blockUI.start("<div class='dots-loader'>Minions are Working!</div>"); // some code ...
I want to block my UI and show a spinner while it is blocked. I tried to use the following : blockUI.start("<div class='dots-loader'>Minions are Working!</div>"); // some code ...
I'm using mocha and trying to build a testing system which reports tests individually. The goal is to have traceability between tests defined in the requirements for the project and unit tests. So, ...
I'm using mocha and trying to build a testing system which reports tests individually. The goal is to have traceability between tests defined in the requirements for the project and unit tests. So, ...
I have the following jquery selector which I am trying to convert to regular javascript. $("#lelement>*").on("dblclick", function(){ }); what would the equivalent be with regular javascript ? Can ...
I have the following jquery selector which I am trying to convert to regular javascript. $("#lelement>*").on("dblclick", function(){ }); what would the equivalent be with regular javascript ? Can ...
I have 5 boxes and an array of items. How do I display 5 items in 5 boxes, randomly selected without repetition? Is it a problem with: ptags[index].textContent = item[0].label; that it is not ...
I have 5 boxes and an array of items. How do I display 5 items in 5 boxes, randomly selected without repetition? Is it a problem with: ptags[index].textContent = item[0].label; that it is not ...