Private and Public File Handling Love

CitizenKane's picture

So, my Summer of Code proposal was accepted and I figured I would start off with a post. For my project I'll be fixing up private vs public file handling in Drupal, which as I found out after awhile of talking to a handful of Drupal devs needed some work. I had originally been inspired by Wim Leer's proposal for a Drupal bittorrent tracker. It's a really cool proposal and I'm glad that it was picked up by someone else. That made me think, mirroring files must be a real pain, so automated mirroring with some metalink goodness would be pretty cool. After some discussion I found out that the file subsystem likely wouldn't be up to snuff. After talking to some more people it became clear that making a file public or private had some issues. So I guess my idea is like the idea for most startups, it changes 70% by the time something is settled on. That being said I should be able to fix some problems and get part of Drupal's file management headed in the right direction.

So right now Drupal handles public vs private file management like a sledgehammer, all files are private or they are all public. This can be problematic, and it isn't the most flexible solution. So I'll be trying to fix that up with the following:

  • Make public or private occur on a per file basis rather than a sitewide basis.
  • Make public and private files live peacefully so that they can occupy the same node.
  • Try and make node access rights and file access rights a little more congruent.
  • etc.

So in the next couple weeks I'll be getting everything figured out and getting the actual deliverables fleshed out too. It is pretty likely that I'll be working with fileAPI to get things done and it will be pretty interesting to here how things turn out. I'd be interested to here what everyone thinks.

Groups:
Login to post comments

Awesome. Talk about diving in and helping where it's needed

Benjamin Melançon's picture
Benjamin Melançon - Sat, 2007-04-14 00:58

Going from "this looks cool" to "this is what's needed" -- impressive!

Congratulations, and now let the feature requests begin ;-)

A friend wanted the ability to "check out a file" -- lock down downloading until a newer, replacement file is returned. This seems like a very useful feature for people working on any sort of document that can't be nodified (yet). I'd be interested if you think this fits in with your file handling improvement at all, in particular in the node and file access rights and etc. categories...

~ ben melançon

member, Agaric Design Collective
http://AgaricDesign.com - "Open Source Web Development"


it'd be great to have a hook

drewish's picture
drewish - Sat, 2007-04-14 02:55

it'd be great to have a hook that modules can implement to determine which private files can be downloaded by which users. i ended up with sort of a hack on the audio module to do this.


feature freeze

Gábor Hojtsy's picture
Gábor Hojtsy - Sat, 2007-04-14 08:44

As it seems now, the feature freeze is about to begin at 1st June, so if your improvements are about to get into Drupal 6 (which would be really nice as far as I see), you would need a functional version by then. After that you can work on refining, fixing some accidental bugs and so on, while the feature freeze is in (and you still have your SoC timeframe going). Otherwise this can only get into Drupal 7, which is still far-far away.


Doubtful

CitizenKane's picture
CitizenKane - Sat, 2007-04-14 11:42

It's unlikely these features will get into Drupal 6 if the feature freeze is really June 1st. This is going to require quite a bit of development and testing and fileAPI is probably going to need a lot of work. So who knows when it will end up being available in Drupal.


better cleaner then sooner

Gábor Hojtsy's picture
Gábor Hojtsy - Sat, 2007-04-14 11:48

Well, better do it cleaner then sooner. There are not many people understanding fileAPI, so a cleanup there is in order.


Ohh man this would be

proxous's picture
proxous - Sat, 2007-04-14 23:52

Ohh man this would be awesome. I've recently had to try to solve this type problem at work using groups and fileshare module.

An awesome feature would be able to specify granularity to the level of setting private access per node per user (or group for that matter).

http://xamox.NET


Actually...

CitizenKane's picture
CitizenKane - Wed, 2007-04-18 01:39

I am actually planning on doing something like that or actually building it straight into fileAPI. I don't think it's summer of code timeframe, but I'm hoping to have something working by the end of 2007. Although maybe I can implement some hooks before then.


can't wait

elnate's picture
elnate - Wed, 2007-04-25 17:23

I'm needing this!

I would just love to have folders for each role. That would be soooo easy!


Perhaps a good start

Grugnog2's picture
Grugnog2 - Wed, 2007-05-23 05:46

...would be to make a public files directory available to system files (at least) in D6 - there is an issue for this at http://drupal.org/node/128876

This could then be extended for a more fine grained approach.


This should be high priority!

JoepH's picture
JoepH - Tue, 2007-06-12 14:33

I would really love to have this built in Drupal 6!
Any updates on the progress?

Thanks!


metalink goodness

antini's picture
antini - Sun, 2008-03-23 18:14

was that part of the project worked on? that would be cool, we'd love to see something like that.

I know this is a year late, but if you're interested, join our list... http://groups.google.com/group/metalink-discussion