AzureStorageExplorer icon indicating copy to clipboard operation
AzureStorageExplorer copied to clipboard

copy symlinks created blobs fails when copying to another container

Open dwr-psandhu opened this issue 1 year ago • 8 comments

Preflight Checklist

Storage Explorer Version

1.34.0

Regression From

N/A

Architecture

x64

Storage Explorer Build Number

No response

Platform

Windows

OS Version

No response

Bug Description

I used the --preserve-symlinks to copy from linux keeping the symbolic links as blobs. However these special blobs are not respected by storageexplorer when copying from one container to another. Downloads also simply fail to materialize a file on Windows.

Steps to Reproduce

  1. Copy symbolic links from linux to a blob
  2. Use storage explorer to copy these blobs to another container. This fails
  3. Try to download it . It fails.

Actual Experience

Symbolic links disappear or are not copied over.

Expected Experience

No response

Additional Context

No response

dwr-psandhu avatar Aug 16 '24 02:08 dwr-psandhu

@dwr-psandhu

  • How are you doing step 1? Are you able to successfully upload the symlinks using Storage Explorer?
  • Are you uploading to a standard blob container or an ADLS Gen2 container?
  • Are you trying to copy to a standard blob container or an ADLS Gen 2 container?
  • Can you provide the exact error messages you are seeing?

craxal avatar Aug 16 '24 17:08 craxal

Step 1 is by using azcopy --preserve-symlinks Both source and destination are Storage v2 general purpose No error messages. Just the blob that represent symlinks are not copied over to destination. They are missing.

dwr-psandhu avatar Aug 16 '24 17:08 dwr-psandhu

Both source and destination are Storage v2 general purpose.

So hierarchical namespaces is not enabled, correct?

No error messages. Just the blob that represent symlinks are not copied over to destination. They are missing.

Interesting. Can you share both your app logs and your AzCopy logs? Can you copy the symlinks using AzCopy directly, and does it work as expected?

craxal avatar Aug 16 '24 19:08 craxal

Yes it says on the portal that "Hierarchical namespace Disabled" I am using azcopy command line from linux 10.24+ to copy symlinks. I can also use azcopy with --preserve-symlinks to copy between blob containers and that works fine. It is really storage explorer that doesn't have that option turned on, e.g. when i ask to see what azcopy command storage explorer uses it doesn't have "--preseve-symlinks" in it stated options.

dwr-psandhu avatar Aug 26 '24 15:08 dwr-psandhu

@dwr-psandhu Correct, Storage Explorer is not using the --preserve-symlinks to copy. We will need to discuss the full implications of including this. We may just add an app setting to enable it.

craxal avatar Aug 26 '24 17:08 craxal

Ok, I believe it is a harmless option or perhaps there is another option that keeps metadata on blobs intact ?

dwr-psandhu avatar Aug 26 '24 17:08 dwr-psandhu

@dwr-psandhu Metadata is a different concept than symbolic links in this context. Can you clarify what you mean?

craxal avatar Aug 26 '24 17:08 craxal

It is my understanding that when this feature was implemented it was as a blob with contents as name of the file being linked to and metadata property indicating it was a symlink https://github.com/Azure/azure-storage-azcopy/pull/1829/commits/873c86ab7001210fea258ce119d8f85c3970eb76

dwr-psandhu avatar Aug 26 '24 17:08 dwr-psandhu