[Owncloud] file sharing doesn't trigger fscache update
Michael Gapczynski
mtgap at owncloud.com
Thu Jul 12 14:17:12 UTC 2012
Hi Björn,
I thought I fixed all of these issues by updating the mtime of the shared
folder to trigger a scan, but I suspected issues might still be around.
However, I'm working on a refactored sharing in the share_api branch which
avoids using the file cache for shared files and prevents any of these
problems. Here's why I decided to keep the shared files out of the file cache:
- File cache needs to be updated manually because the file hooks don't work
across users, which is what you brought up
- mtime and size don't get updated, so this also has to be done manually
- Sharing a large folder can take a long time to scan again, causing a UI
delay
- Duplicate rows for files and performance costs for what can be achieved with
just the share table
The disadvantage of this, is that I had modify OC_Files to also return shared
files. This isn't something that I wanted to do because it means sharing isn't
independent of the core. I may change this in the future if I come up with a
better solution.
The new version of file sharing should be completed for the next release of
ownCloud.
Michael
On Thursday, July 12, 2012 02:05:14 PM Bjoern Schiessle wrote:
> Hi all,
>
> I discovered a fscache problem in connection with file sharing which I
> want to share wit you and get your feedback.
>
> The first time I share a file with a user, the operation works as
> expected. I think that's the case because at the first time the
> Shared directory gets created it triggers the right operation to update
> the fscache.
>
> But after that no further operation updates the fscache. Neither when I
> unshare the file nor if I share additional files. That's the case
> because for a virtual directory like "Shared"
> OC_FilesystemView::basicOperation() never proceeds to the point where
> it emits the post-hooks which would trigger the fscache update.
>
> I think it is right to not execute the generic post hooks for the Shared
> folder since the actual files aren't located there. So a lot of other
> operations connected to the post hook would fail.
>
> But this leads us to the question where to update the fscache if a
> new file gets shared or a if a file gets unshared. I see two options:
>
> 1. Create special post hooks for the shared operations. This would
> also allow other apps to subscribe to the same events which might be
> useful in the future.
>
> 2. Instead of using hooks we could simply add/remove the new files
> from the fscache directly in apps/files_sharing/lib_share.php where
> also the oc_sharing table gets updated. The disadvantage here is that
> fscache operations would happen in two different places.
>
> What's your thoughts?
>
> cheers,
> Björn
> _______________________________________________
> Owncloud mailing list
> Owncloud at kde.org
> https://mail.kde.org/mailman/listinfo/owncloud
More information about the Owncloud
mailing list