AzureStorageExplorer icon indicating copy to clipboard operation
AzureStorageExplorer copied to clipboard

Add icon for symlink

Open bakoontz2 opened this issue 1 year ago • 5 comments

Preflight Checklist

Problem

Differentiate symlinks from documents (both use the same icon)

Desired Solution

An icon that represents a symlink

Alternatives and Workarounds

No workaround, it is what it is right now

Additional Context

No response

bakoontz2 avatar May 30 '24 15:05 bakoontz2

image

The "documents" are actually symlinks in this image.

bakoontz2 avatar May 30 '24 15:05 bakoontz2

@bakoontz2 Can you provide more context? Are you using Blobs, ADLS Gen2 Blobs, or File Shares? What MIME types or content types are you seeing for these symlinks? Can you share more of your screenshot?

Can you share more about your particular use case? What platform do you run Storage Explorer on? Why do you upload symlinks to Azure? Why do you need a different icon?

craxal avatar May 30 '24 21:05 craxal

File shares that we mount in Linux containers. Here is a better screenshot:

image

Here are the symlinks as represented in Linux after they are mounted:

image

Here is what SE thinks is the content type of the symlinks:

image

Some people on our team, not comfortable in a Linux environment, use SE to navigate and update the file system. Given that there is no clue in the SE presentation that what appear to be docs are actually symlinks, and the inability to navigate the symlinks from within SE, leads to confusion. SE is exclusively run on Win 10E. We don't "upload" symlinks to Azure. The symlinks are created after the FS is mounted in a Linux container. A different icon is desired because the present icon does not accurately represent the underlying symlink.

bakoontz2 avatar Jun 03 '24 16:06 bakoontz2

@RichardMSFT Getting a separate icon for symlinks should be pretty simple to do. But let's investigate for 1.35.0 what it would take to support navigation via symlink, and then we can plan further.

craxal avatar Jun 03 '24 18:06 craxal

Thank you for the quick response!

bakoontz2 avatar Jun 03 '24 18:06 bakoontz2

@richardMSFT Let's focus on getting symlink icons for the items in 1.36.0. Later we can look into implementing actual navigation for symlinks (#8112).

craxal avatar Aug 07 '24 23:08 craxal

@bakoontz2 Can you provide more detailed steps on how to recreate your existing scenario? How are you creating and mounting your file share? Is the file share using SMB or NFS protocol? How are the symlinks being created that are shown in your previous screenshot?

A step by step instruction would help us best to replicate your scenario and then in turn figure out what can be supported in storage explorer.

richardMSFT avatar Aug 13 '24 22:08 richardMSFT

@bakoontz2 unfortunately we need some additional help from you to implement this feature, but we havne't heard back from you. Therefore we are going to close this feature request. If you are still interested in this feature, please open a new feature request with explicit instructions for how we can recreate this symlink scenario you have found yourself in. We need the minimal end to end steps on how to get in the same state as you are in.

MRayermannMSFT avatar Oct 16 '24 21:10 MRayermannMSFT

Somehow I missed this last comment from @richardMSFT. l will document these steps and get the posted.

bakoontz2 avatar Oct 16 '24 21:10 bakoontz2

The file shares are created in the Azure portal as standard file shares, no share-level permissions, 14-day soft delete, 100TiB, maximum compatibility security (the defaults). These files share are mounted to their respective K8S containers via pre-defined PV/PVCs:

pv.yaml

spec:
  accessModes:
  - ReadWriteMany
  azureFile:
    secretName: some-secret
    secretNamespace: some-ns
    shareName: some-share-name
  capacity:
    storage: 100Ti
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: some-pvc
    namespace: some-ns
    resourceVersion: "12345678"
    uid: <guid>
  mountOptions:
  - dir_mode=0777
  - file_mode=0777
  - uid=1000
  - gid=1000
  - mfsymlinks
  - nobrl
  persistentVolumeReclaimPolicy: Retain
  volumeMode: Filesystem

pvc.yaml

spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 100Ti
  storageClassName: ""
  volumeMode: Filesystem
  volumeName: some-pv
status:
  accessModes:
  - ReadWriteMany
  capacity:
    storage: 100Ti
  phase: Bound

job.yaml

...
    volumeMounts:
    - mountPath: /mnt
      name: mnt
...
  volumes:
  - name: mnt
    persistentVolumeClaim:
      claimName: some-pvc

From there, we create the symlinks that are needed on the mounted filesystem using "ln -s".

I really have no idea if this is SMB or NFS. This is how the fileshares are mounted and used.

And I just noticed I need to open a new feature request, so I will do that with this comment.

bakoontz2 avatar Oct 29 '24 22:10 bakoontz2

@bakoontz2 Since you replied, we'll just reopen this issue. We can repurpose the new feature request you made for implementing the symlink navigation feature.

craxal avatar Oct 29 '24 22:10 craxal