Giter VIP home page Giter VIP logo

sebagomez / azurestorageexplorer Goto Github PK

View Code? Open in Web Editor NEW
124.0 124.0 66.0 11.75 MB

โ˜๐Ÿ’พ Manage your Azure Storage blobs, tables, queues and file shares from this simple and intuitive web application.

Home Page: https://azurestorage.azurewebsites.net/

License: MIT License

C# 74.20% CSS 3.51% HTML 19.99% Dockerfile 0.28% Shell 0.49% Smarty 1.53%
angular azure azure-storage azure-storage-explorer c-sharp docker-image dotnet hacktoberfest

azurestorageexplorer's Issues

Internal Server error when using an authorized action

When you create a SAS token you can specify the kind of permissions that token is allowed to do.
Right now, if you aren't allowed to create containers and you want to create one, you get an Internal Server Error message, whoch is not nice.

Container Volume/Overlay filled up with 100gb temp files

I've been use the explorer for a while now but the monitoring just triggered an alarm due to a filled up space.

The container volume which was attached to this container contained 96 GB of *.tmp files
image

I had to delete those files manually in order to make the other containers work again since those were suffocating on non-available disk-space.

Folders

Hi,

Any plans to support showing the folders in Blob instead of all Blobs in flat structure? With lots of blobs in one container the pages take forever to load and its impossible to browse.

Blobs not listed correctly whenm having multiple folders

I'm trying to use the storage explorer docker version together with the Azurite emulator.

I'm connecting to a container that has a deeper folder structure (3 4 levels deep)

On the first load, the folders under the root are displayed correctly, but on the second level (after i click on one of them) it loads nothing. If i click on "go back up on level" (back to root) it loads again nothing.

I think this has something with how the CurrentPath is set here :

CurrentPath = blob.FullName;
(on the first pass it's empty and the root loads and renders correctly)

Add Dockerfile

Add Dockerfile and push the image to some public Docker registry

[BUG] SAS: Fileshares not working

Hello,

when connected via SAS Token (or rather the whole Connection string, since only SAS does not work) the fileshares are displayed incorrectly.

E.g. if the File share is named banana and the fileshare has 5 differently named folders, clicking on FS Banana results in all folders within also being named "banana". Proceeding to click on a incorrectly named folder results in an error.

image

I also can see why this happens. Analysing it via Web Tools shows that the URL is incorrectly build:

https://*****.file.core.windows.net/banana?sv=/banana-files (With banana files being the correct folder name)

The foldername is attached to the end but it should have been after the fileshare name:

https://*****.file.core.windows.net/banana/banana-files?sv=

Support for connection strings via environment variables

Hello, Is it possible to provide environment variables to docker container so that connection to storage account is pre-authenticated or pre-filled in the login UI? This is super convenient when using as part of local dev environment like docker compose.

pgweb is a good example of how this can work. In my mind pgweb projects serves a similar purpose, so linking here as an example.

It would be even nice to have multiple pre-authenticate connection strings to support local azurite storage emulator.

Website sends Azure storage account access keys over unencrypted HTTP connection.

I am pretty sure, you are aware of this. Why a web developer offers a service in such an unsecure way? The least you could have done is to notify potential users about this security aspect. Then they could choose whether they use your service. I am not aware of any notes regarding neither on the website nor on Github project page.

I forked your project, deployed using "Deploy to Azure" button. I was pretty surprised to find, that Azure websites have SSL endpoints out-of-the-box.

A more secure solution just needs a couple of minutes. Please update the link on your website to use HTTPS. Thank you for creating this tool.

A more complete approach would disable HTTP endpoint or force HTTPS too. Given that the link to your website is spread over the internet, a redirection could help.

References

Attempting to upload blob fails due to Invalid URI

After successful signin and container enumeration, attempting to upload a file to blob storage says Invalid URI: The format of the URI could not be determined. under the upload control in red and no blob is written to the container.

How to login?

Hello,
How to login to this app?

What's the Azure Account?

SAS Support

Any chance of including SAS (shared access signature) support? SAS allows a more finely tuned access model than using full keys.

Add a configurable base path

Hello,

it would be nice to be able to run the whole application under a base path.

E.g.: localhost:5000/app

I've tried:

var appPath = Environment.GetEnvironmentVariable("BASE_PATH");
if (!string.IsNullOrEmpty(appPath))
{
    app.Use(async (context, next) =>
    {
        context.Request.PathBase = new PathString(appPath);
        await next();
    });
}

And

var basePath = Environment.GetEnvironmentVariable("BASE_PATH");
if (!string.IsNullOrEmpty(basePath))
{
    app.UsePathBase(basePath);
}

Within Program.cs.
But both attemps unfortuntely were unsuccessful

UsePathBase however worked for the login-screen and started trying to redirect to non-UsePathBase patterns afterwards.

Azurite Emulator Support

How feasible is it to add support for this to play nice with the local emulator (e.g. azurite) where you do not have to signin to azure? When I run a version of Azure Storage Explorer installed in my labtop I can access a local emulator no problem without login to azure. Wondering if that is or would be possible with the dockerized version.

Request: input sanitization on account name

Microsoft's Storage Accounts only support lowercase and numbers in names: https://docs.microsoft.com/en-us/azure/azure-resource-manager/management/resource-name-rules#microsoftstorage

Supplying invalid values (accidentally since I missed the space!) results in attempting to use the value, instead of validating it before submitting, and the response 'Invalid account or key', though I think it'd be more user friendly if the account name box failed regex validation. There may be a reason to support other characters for custom domains, but since both requests are defaulting to the normal endpoints I think the logic could be split if there's a suffix.

Request URL: https://REDACTED.azurewebsites.net/api/Queues/GetQueues?account=fakename**%20**&key=fddfsfdsfdfd

{description: "System.UriFormatException: 'Invalid URI: The hostname could not be parsed.'",โ€ฆ}
description: "System.UriFormatException: 'Invalid URI: The hostname could not be parsed.'"
statusText: "Invalid URI: The hostname could not be parsed."

Request URL: https://REDACTED.azurewebsites.net/api/Queues/GetQueues?account=fakenaDDDD&key=fddfsfdsfdfd

{"description":"System.AggregateException: 'Retry failed after 6 tries. Retry settings can be adjusted in ClientOptions.Retry. (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443))'","statusText":"Retry failed after 6 tries. Retry settings can be adjusted in ClientOptions.Retry. (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443)) (Name or service not known (fakenadddd.queue.core.windows.net:443))"}

Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Does anyone else get this is the web page / demo page:

Unchecked runtime.lastError: A listener indicated an asynchronous response by returning true, but the message channel closed before a response was received

Docker image:

image

Demo webpage - https://azurestorage.azurewebsites.net/

image

I tried this tool a couple of years ago, but I can't get it to work today. Anything obvious I am doing wrong? I get errors before i even enter settings, and then 'Login' does nothing

Question: Is it possible to get the ATS record with their EDM types intact

I have gone through the code and it is able to achieve what it says except few things:

It gets all the data as a string in TableEntityWrapper.Dictionary<string, object> m_properties. This creates a problem, lets's say I need to update some data on a filter condition and the types in my data do have different types from EDM. It is having a string, boolean, DateTime, etc.

Now when I update the data using this library, it changes all the types to the string which is a problem.

For creating new records also, the same issue. I can't create records with EDM type except for string.

Is it possible to achieve the same here in this package? Would love that capability.

Screenshots

Thank you for this amazing application.

Could you please provide more screenshots of Blob section, containers and files.

SAS login not functional?

Logging in with SAS tokens does not seem to work. I tried using the storage account name, container name, SAS URL, query string and different combinations of these.

Mixed objects from different account

When you log in into an account and see the containers, if you log out and log in again with a different account, you'll see both sets of containers, the previous and current account ยฏ_(ใƒ„)_/ยฏ

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.