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

Feature request: Symlinked files [$20] #6771

Closed
fieldse opened this issue Jan 15, 2014 · 41 comments
Closed

Feature request: Symlinked files [$20] #6771

fieldse opened this issue Jan 15, 2014 · 41 comments

Comments

@fieldse
Copy link

fieldse commented Jan 15, 2014

Feature request: The ability to symlink files in the Owncloud synced folder on the local computer.

as per this discussion at github/owncloud/mirall: owncloud/client#665

This is possible in Dropbox:
(see: http://lifehacker.com/5154698/sync-files-and-folders-outside-your-my-dropbox-folder)

Purpose: to allow a more unified collection in the Owncloud sync folder, and including files from other directories. This is standard feature in Dropbox, and users accustomed to working under this paradigm might expect the same functionality.

Here's a few comments from users in that thread requesting this support:
15-01-2014_001

image

The moderator Danimo in that thread responded it's impossible, and to open a feature request in core:

danimo commented:
"The main problem is that the sever is not capable of storing symlinks. Feel free to open an issue in core about that."

Thanks for your hard work, devs, and will appreciate any consideration of this idea. Awesome application.

@fiftyheight
Copy link

yeah, symlinked files and folders kept as regular files and folders is a must have feature on CLIENT side

@PVince81
Copy link
Contributor

Since this is something for the client side, please submit your request in the mirall repo.
I know that the one about symlinks was closed, maybe do specify in the subject that links should be dereferenced.

@salinasv
Copy link

I am not sure of the technical aspects of the issue here. They said they can't do it because the server does not support it. And you say it is a client side issue.

Can you both be a little more specific about the technical limitations to implement this feature? I would love to see both opinions in a single thread. =)

@PVince81
Copy link
Contributor

Haha, right.

I think there are at least two ways to implement symlink support.
Either:

  1. symlinks are mirrored on the server somehow
  2. symlinks are dereferenced as files

They probably meant number 1) which means the server should have means to create symlinks.

However, solution 2) should not require server changes. In that case, the client would dereference the symlinks which means just upload their contents instead of the symlinks themselves, as if they were regular files (which the server understands)

Does that make sense ?

@salinasv
Copy link

@danimo why do you need the server to store symlinks?

Actually I think the best (or at least the expected) behavior is what dropbox does which is, it just copies the files as if they were actually there.

Can you elaborate?

@danimo
Copy link
Contributor

danimo commented Jan 15, 2014

@salinasv Depends a bit of what you expect. Keeping symlinks verbatimly is nice if you want to use ownCloud as a backup solution, which was requested elsewhere. You can always make that configurable of course.

@fiftyheight
Copy link

in my case I just want the client upload symlinked file or folder just as if they were there like danimo said
So no work needed on server side in that case

@zdanek
Copy link

zdanek commented Jan 21, 2014

+1 for symlinks

@icewater
Copy link

icewater commented Feb 8, 2014

+1 for symlinks (on the client, just upload as regular files to server)

@kworm1
Copy link

kworm1 commented Mar 14, 2014

+1 for dereferenced symlinks (like dropbox)

@WorldsEndless
Copy link

+1 for Dropbox-like dereferencing.

@elehcim
Copy link

elehcim commented Mar 24, 2014

+1 for dereferenced symlinks (like dropbox)

@pabloheimplatz
Copy link

+1 for dereferenced symlinks (like dropbox)

@andrikos
Copy link

As requested to be transferred here from #7954 .

Some of the users above would like the symlinks to be dereferenced client side and propagated as normal files to the server. This approach can lead to some strange behavior, but I understand the rationale behind this, and this bug report is about this requested behavior.

On the other hand, for people using owncloud as a backup solution, just propagating the symlinks as symlinks to the server is enough. I understand that some ways to access the files do not support these files, e.g. webdav, and for these cases, the symlinks can be indeed ignored. But using a more feature rich client should be able to use this extra feature.

I guess the best solution is to have a (off by default) flag that enables this behavior.
From what I understand this firstly needs support from the server in order to save symlinks and this is why I open it against core.

@jeffbr13
Copy link

+1 on de-referenced symlinks

As @andrikos says, it should be an option in the client to either

  1. De-reference symlinks, and sync the referenced files to the server, or
  2. Sync the symlinks themselves to the server.

@sambitbasu
Copy link

+1 on dereferenced symlink

1 similar comment
@katosan
Copy link

katosan commented May 15, 2014

+1 on dereferenced symlink

@zargony
Copy link

zargony commented May 15, 2014

+1 on symlink syncing to the server.

Symlinks are important to keep, especially on OS X where bundles (like an app) typically contain symlinks inside (the user may not even be aware of it). Dereferencing symlinks would be an unnecessary duplication of files. Dropbox is using Symlinks in a weird way to sync files outside the synced directory (which I think should be questioned to do at all, actually the symlink of the outside location should point into the synced directory)

@fixje
Copy link

fixje commented May 20, 2014

+1 for dereferenced symlinks (like dropbox)

@CarliJoy
Copy link

+1 also from me

@PVince81
Copy link
Contributor

I believe this is not on the roadmap at the moment, but if anyone of you guys can code and would provide a proof of concept pull request (with "WIP" tag), it might help push the case a bit 😃

@NilstecInc
Copy link

+1 for dereferenced symlinks (like dropbox). I think User data rarely contains any symlinks, so the simplest approach would be to dereference symlinks inside the ownCloud Folder and ignore any symlinks further down. No recursive loops or duplicated data possible (except for duplicated links in the ownCloud folder). I imagine the common use case to be the synching of user data rather than the synching of whole harddisks with application data on them.

@yonailo
Copy link

yonailo commented Jul 18, 2014

+1 for symlinks, this would allow a lot of people to use Owncloud as a backup server and as a replacement for Time Machine

@dennisppaul
Copy link

+1 for dereferenced symlinks (like dropbox)

@marcozanchi
Copy link

+1 for symlinks (like dropbox)

@AndrolGenhald
Copy link

+1 for dereferenced symlinks

@eigengrau
Copy link

+1 for dereferenced symlinks. In fact, I suppose that this might be a sane way to handle hard-links, as well (or make this configurable; I believe Dropbox does the same for hard- and symlinks).

@eigengrau
Copy link

Another use-case where symlinks are needed is when an application re-creates config files instead of writing in-place. The route of symlinking the regular file from the Owncloud folder into the application config folder (say, ~/.config/foo) won’t work then, since the application will delete the symlink and write out a regular file. (This might be considered a bug on part of those applications, but it seems to be rather common.)

@repsorp
Copy link

repsorp commented Sep 24, 2014

+1 for dereferenced symlinks

@rajanski
Copy link

+1

@PVince81
Copy link
Contributor

https://www.bountysource.com/issues/1381302-feature-request-symlinked-files in case it helps finding some volunteers to build a proof of concept.

@rajanski
Copy link

meanwhile use lsyncd

@ricardoamaro
Copy link

+1 on symlinks - anyone in the *nix world makes heavy use of them... no syncing symlinks is a big issue.

@zdanek
Copy link

zdanek commented Oct 31, 2014

this list getting bigger and bigger but I have an unclear feeling that authors still refuse to implement symlinked files so what's the point for voting anyway?

@PVince81
Copy link
Contributor

From all the people voting here many seem to have coding skills (many repositories/forks).

So why not make a proposal PR ? It doesn't have to be a finished solution, but a good base that can be improved incrementally.
Or do some research about feasibility and/or provide a design document that covers all possible use cases, and takes other platforms like Windows server / client into account ?

Questions like:

  • what kind of symlinks must be synced ? (oc->oc symlinks, oc->outside symlinks)
  • how to sync symlinks ? how to extend the webdav protocol ?
  • how to display them in the web view ?
  • how to enhance the file scanner to make sure it doesn't run into infinite loops ?
  • what about hard links ?
  • in what form to store symlinks in the database ?

@PVince81
Copy link
Contributor

  • what happens if I chose to only sync a subdir "/clientsync" but that one contains a symlink that points to another folder "/somedir", should it still be synced ?
  • should symlinks be dereferenced instead ?
  • what happens on a windows client ? do they get the full file or nothing at all ?
  • what about symlinks on external storage ?

Once all these questions are addressed properly, we'll already be a little step closer to a solution.

@rajanski
Copy link

Sorry for mentioning, but dropbox handles the symlinking rather well imho. Could we learn from how they're handling it?

@karlitschek
Copy link
Contributor

I just want to make it clear that ownCloud is an open source project with a completely open development process. Everybody can help and is welcome to submit a code change for this feature. No one is refusing to implement anything. But more help is needed to move forward.
+1 doesn´t necessarily help here.

@wwp
Copy link

wwp commented Nov 10, 2014

+1 for dereferenced symlinks

@owncloud owncloud locked and limited conversation to collaborators Nov 10, 2014
@LukasReschke
Copy link
Member

Since apparently no-one is able to read what we mentioned already a few times: "+1 does not help except annoying devs" this issue is now locked to contributors only.

@DeepDiver1975 DeepDiver1975 modified the milestone: backlog Mar 21, 2015
@DeepDiver1975 DeepDiver1975 changed the title Feature request: Symlinked files Feature request: Symlinked files [$20] Feb 7, 2017
@PVince81
Copy link
Contributor

PVince81 commented Sep 7, 2017

For the Webdav nodes, could use redirect refs: https://www.ietf.org/rfc/rfc4437.txt.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests