Home > Blog > Programming > GSoC: ownCloud Sharing

GSoC: ownCloud Sharing

June 22nd, 2011


I was accepted into Google Summer of Code for my proposal to introduce a way of sharing files between users of ownCloud. If you haven’t heard about ownCloud yet, then you should read this blog post by Frank Karlitschek. I’m having lots of fun along the way and would like to thank my mentor Robin Appelman for all of his advice and programming help. So in this first post of my new blog I would like to share what I’ve accomplished so far.

To create this feature within ownCloud I created an app that handles file sharing. A library keeps track of the files being shared in the database and using ownCloud’s file system abstraction I give users access to the files shared with them. ownCloud was designed to be able to grab data from anywhere with something called a storage provider. Right now there is only one storage provider being using by default, which is for the local filesystem. I created a storage provider for sharing that translates a target location into the source location of the shared file which is in someone else’s data directory.

Here’s a little proof of files being shared between users:

Sharing files between users

As you can see those files don’t exist in my user’s data directory, however they do exist in Bob’s. There are database entries for both of those files, which is allowing me to access them in my shared directory.

What’s next? Well, I’ll be working on permissions for the next few days. The idea is that for some files you share you only want people to be able to read the file and not modify it. Or you may want to work together on a document, in whch another user has write permission. After that it will be time to add support for user group file sharing. I’d also eventually like to integrate my sharing app with the public link app. This app creates a public link for anyone to download one of your files. I believe this could easily be included with the sharing app.

I’m very excited with where this is going and it should unlock new potential for ownCloud. Besides my own work with sharing, the development of ownCloud has increased pace. Many people are working on cool new features; Robin Appelman is working on a media player using Ampache, Aamir Khan is making progress with a sync app, and Jakob Sack has added support for translation. I’m sure there’s even more going on that I’m not aware of yet.

If you’d like to see my code, you can view it at ownCloud’s repository in my sharing branch. However, it isn’t ready for testing yet as some things are hard-coded for my own environment.

Categories: Programming Tags: , ,
  1. Vladislav
    June 22nd, 2011 at 20:30 | #1

    Very cool, keep it up.

  2. YK
    June 24th, 2011 at 10:59 | #2

    I think this idea is great and would love to see it available in ownCloud. I would like to suggest you review the type of sharing offered by DropBox and Wuala (I personally prefer Wuala) for ideas to ensure your design accounts for the wide potential it has.

  3. June 24th, 2011 at 11:45 | #3

    @YK Thanks for the feedback. I’m currently looking at all options for how sharing should work in order to give the best possible experience to ownCloud users. I’ve never used DropBox or Wuala myself, but I’m investigating how they handle sharing files.

  4. June 24th, 2011 at 13:55 | #4

    It’s great to see the work that you (and others) are putting in on ownCloud. I think that this is one of the most exciting projects to watch right now. Keep writing, a blog entry is much more human than a changelog. I look forward to hearing about the progress you make.

Comments are closed.