Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The URL of one blob snapshot shows incorrectly #2788

Closed
v-limu opened this issue Apr 3, 2020 · 28 comments
Closed

The URL of one blob snapshot shows incorrectly #2788

v-limu opened this issue Apr 3, 2020 · 28 comments

Comments

@v-limu
Copy link

@v-limu v-limu commented Apr 3, 2020

Storage Explorer Version: 1.13.0
Build: 20200403.15
Branch: rel/1.13.0
Platform/OS: Windows 10/ Linux Ubuntu 16.04/ macOS High Sierra
Architecture: ia32/x64
Regression From: Not a regression

Steps to reproduce:

  1. Expand one Non- ADLS Gen2 storage account -> Blob Containers.
  2. Create a new blob container -> Upload one blob to it -> Create snapshot for this blob -> Manage Snapshots.
  3. Right click the blob snapshot -> Copy URL -> Paste the URL.
  4. Check the pasted URL.

Expect Experience:
The URL shows correctly.
image

Actual Experience:
The URL shows incorrectly.
image

More Info:

  1. This issue also reproduces for one folder under one file share snapshot in Properties dialog.
    image
@JasonYeMSFT
Copy link

@JasonYeMSFT JasonYeMSFT commented Apr 6, 2020

The url is the url returned by the api. We won't fix it on our side.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

I confirm that this is true. Not only the copy to URL button is gone but you can find it by right click on the file but it does give a local URL instead of the usable URL.
FIX IT ASAP PLEASE!

@JasonYeMSFT JasonYeMSFT reopened this May 5, 2020
@JasonYeMSFT
Copy link

@JasonYeMSFT JasonYeMSFT commented May 5, 2020

@egdedudette Thanks for raising this up. We will re-triage this issue.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

Why was this closed?

@JasonYeMSFT
Copy link

@JasonYeMSFT JasonYeMSFT commented May 5, 2020

Because the last time we triage this issue, we found that "the url is the url returned by the api" and this issue is raised by our tester. We usually don't process data directly from the server unless there is an explicit need.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

There is a need because We use it to test files and now we can't. Big problem for us.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

This was created by the new update.

@craxal
Copy link
Contributor

@craxal craxal commented May 5, 2020

@egdedudette

We use it to test files and now we can't.

Are you saying that this was working in a previous version? If so, can you share the version number that this was working in? Also, can you share examples of the URLs you are receiving from the previous version and the new version? We want to make sure we're understanding your problem so we know what exactly needs to be fixed.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

OK. I am able to copy the URL on my office compute with CRD. It works there. version 1.12.0 Azure 10.3.3
In the new version it gives a URL like the previous poster shows with a path that includes characters shown below.
I'd rather not post the path but it does add these 3 characters:
%2F
after the user name.

@craxal
Copy link
Contributor

@craxal craxal commented May 5, 2020

@egdedudette The %2F characters are the URL encoding for "/". CRD? User name? You mean something like https://user@host.com?

You don't have to share the exact URLs. You can edit the endpoints and filenames to something more generic. Just enough that we can get a sense of the URL form you're getting and the form you're expecting.

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

https://curriculumtesting.blob.core.windows.net/files/FolderName%2Fnameoffnextfolderr%2Findex.html

Actually I just noticed it is in 2 places. After the folder name and between the file name.

So basicall folder names are followed with these characters %2F instead of a slash.

and before the slash was not encoded. (I verified with the URL from older version).

@craxal
Copy link
Contributor

@craxal craxal commented May 5, 2020

@egdedudette I think that's by design. The encoding is used to differentiate slashes used in the URL path from slashes used to delimit folder names. Do you know if your blob container is HNS enabled?

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

Well this is so annoying. Before I could just copy the URL and now I have to remove the undesirable characters and replace them! SERIOUSLY! Great improvement!!!!

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

How do you check HNS enabled?

@JasonYeMSFT
Copy link

@JasonYeMSFT JasonYeMSFT commented May 5, 2020

Next to your storage account node we show (ADLS Gen2) if the storage account is HNS enabled. To summarize your concern, you would like to have the copy url give a url that contains the ?snapshot parameter and without the %2F encoded characters but actual /s, right?

@craxal
Copy link
Contributor

@craxal craxal commented May 5, 2020

@egdedudette The encoded slashes should have no impact on whether they work or. The blob service should know how to handle them.

Hierarchical namespace (HNS) is enabled when you create the storage account containing the blob container. You can tell if the account has HNS enabled if the storage account node as "(ADLS Gen2)" next to the name, like this:

image

@egdedudette
Copy link

@egdedudette egdedudette commented May 5, 2020

if says (Key) and we have not changed anything and it was working before as I mentioned. So obviously something is different and it is the encoding of the /.

@craxal
Copy link
Contributor

@craxal craxal commented May 5, 2020

@egdedudette OK, I copied a URL that has the %2F in it, but it seems to work just fine on our end. Don't worry, we'll get to the bottom of this! To do that, we'll need your help in figuring out exactly what you're doing to see what we may be doing wrong on our end. Once we can figure out how the problem occurs, we can figure out how to fix it.

First, the "(Key)" part tells me that this is a storage account you connected to manually using an account name and key. In other words, you did not need to sign in using an Azure account. Does that sound correct?

Second, I assume you're using the Copy URL menu command, yes? Or are you clicking on Properties?

Third, can you share with me the exact steps you take from starting up Storage Explorer all the way up to the point you are getting your URL?


Here are the steps I am taking, so let me know if I did something different than what you did.

  1. Launch Storage Explorer and click the plug icon to open the Connect dialog.
  2. Select "Use a storage account name and key", click Next.
  3. Enter the account name (let's call it "myaccount") and key, but I don't change anything else, then click Next.
  4. I look at the Summary to make sure everything looks correct, then I click Connect.
  5. I now see a new node in the tree to the left: Local & Attached > Storage Accounts > myaccount. I expand that node to reveal Blob Containers, and I expand that node to see all of my blob containers. I click on one of those container (let's call it "mycontainer") to open the explorer on the right.
  6. I look at the Properties tab below the tree on the left and notice that "mycontainer" has a Public Read Access property that says "blob". This tells me that anyone can read blobs in my container. Your blob container might have a different value.
  7. I open the folder containing my blob, right-click the blob (in my case, a image named "picture.png"), and select Copy URL. I paste the URL into a word processor and notice that the URL has the encoded slashes:
    https://myaccount.blob.core.windows.net/mycontainer/folder%2Fpicture.png
  8. To test my URL, I paste it into my browser and press Enter.

At this point, I am able to see my picture in my browser. I would expect the URL to work, because my container has "blob" public read access. If my container's public read access is "off", then I get this error page, as I would expect:

This XML file does not appear to have any style information associated with it. The document tree is shown below.
<Error>
<Code>ResourceNotFound</Code>
<Message>
The specified resource does not exist. RequestId:b9339998-e01e-0073-4633-2340b5000000 Time:2020-05-05T23:20:04.8250191Z
</Message>
</Error>

Do my steps follow yours accurately, or did I do something majorly different than you?

@egdedudette
Copy link

@egdedudette egdedudette commented May 6, 2020

First, the "(Key)" part tells me that this is a storage account you connected to manually using an account name and key. In other words, you did not need to sign in using an Azure account. Does that sound correct?
Correct

OK. I just noticed in the property window that it says:
HNS Enabled false (which was like that before in the older version) settings are the same now.

I did exactly as you told me and I get the same result with the pasted / as %2F and my browser cannot read it properly.
I am testing Animate CC media. It shows the stage but with a broken icon. It says
ReferenceError: AdobeAn is not defined.
So basically it does not read the html correctly since it is where the file is defined.

@craxal
Copy link
Contributor

@craxal craxal commented May 6, 2020

@egdedudette I don't think that's a URL problem then, if your browser loads still loads the file, albeit with some bugs. I don't know a lot about Animate, but if you're creating HTML files, can you download the file and check the HTML to see if it looks correct? You should be able to open the original and downloaded files in your browser to check if they both perform the same way. Usually you just need a URL that looks like this:

file:///C:/path/to/your/file.html (if you're on Windows, and your file is on the C drive).

@egdedudette
Copy link

@egdedudette egdedudette commented May 6, 2020

But the same file runs properly with the previous version of Azure.
It also works fine from my web site.
Animate cannot run from local folders because of security issues. Actually it loads properly but click events are disabled by the browser.
So not it is not a problem with the animate published HTML5 otherwise it would never run.
I copied multiples URL from files we had tested before with the previous version of Azure and with the new URL from the new Azure they do not work. When I go back to the old version and copy the URL from there, it works.
If I replace the %2F by the / they all work too.

@egdedudette
Copy link

@egdedudette egdedudette commented May 6, 2020

Files copied are the index.html of published Animate CC media
Files are in blob container

recap:

AZURE PREVIOUS VERSION

  • copy URL button on ribbon - nice touch
  • / between folders
  • HND enable = false
  • lease status: unlocked
  • files run without any problem

AZURE CURRENT VERSION

  • copy URL button is on file right click
  • %2F between folders
  • HND enable = false
  • lease status: unlocked
  • files do not run unless %2F instances are replaced by /

Note: the file loads but fails as it seems to not read the html properly to get the media ID number which does not even makes senses since it reads it when the / is used.

@craxal
Copy link
Contributor

@craxal craxal commented May 6, 2020

@egdedudette Just to confirm I'm understanding you correctly:

  • Your blob container has a public read access of "blob".
  • In previous versions of Storage Explorer you get a URL with no %2F encoded slashes. This URL works as expected.
  • In 1.13.0, you get a URL with %2F encoded slashes. This URL does not work.
  • In 1.13.0, if you manually replace %2F with "/", the URL does work.

What we can do from this point

Assuming the above is all correct, I think we have enough information to dig deeper on our end. Since this is a different problem than the original issue posted above, I've created issue #2939 to track your problem going forward. We will report our findings and progress there. Feel free to share any additional information you have through the new issue.

What can you do now?

Since this was working for you in earlier versions, go ahead and downgrade to the previous version. You can download 1.12.0 by clicking on this link.

@egdedudette
Copy link

@egdedudette egdedudette commented May 6, 2020

yes, exactly. If after placing the / it works as expected or as in previous version.

@egdedudette
Copy link

@egdedudette egdedudette commented May 6, 2020

and thank you for looking into it.

@MRayermannMSFT MRayermannMSFT added this to the 1.13.1 milestone May 13, 2020
@v-limu
Copy link
Author

@v-limu v-limu commented May 14, 2020

Verified on build 20200514.2. This issue has been fixed. So close it.

@v-limu v-limu closed this May 14, 2020
@craxal craxal added this to Committed in Storage Explorer via automation May 14, 2020
@craxal craxal moved this from Committed to Done in Storage Explorer May 14, 2020
@v-xianya
Copy link
Member

@v-xianya v-xianya commented May 29, 2020

This issue reproduce on build master/20200529.3. So we re-open it.

@v-xianya v-xianya reopened this May 29, 2020
@v-limu
Copy link
Author

@v-limu v-limu commented Jun 2, 2020

Verified on build 20200602.3. This issue has been fixed. So close it.

@v-limu v-limu closed this Jun 2, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
6 participants
You can’t perform that action at this time.