So, a Nikon scanner and a couple digital cameras (Canon S500 point-and-shoot and the Nikon D70 SLR), and before I know it I have 10G worth of photos — not including thumbnails and all that rot. So, photo management has become rather interesting.
File storage
Right now, I have all my albums in a “pics” directory with various folders. This folder is on a RAID-1 (mirrored) 75G partition, and is backed up using a script I’ve hacked a bit called “snapback” that effectively uses rsync and cp -l to create backups on another box I have. The backup partition is also RAID-1, although I’ve been thinking that’s just overkill. The right thing to do would be take that second disk, stick it in an el-cheapo box, and take it to work so I have a remote backup in case of a fire or some such.
I spent a lot of time getting this set up, but it’s been working really well now so I don’t fret too much about it. I gotta say, I really enjoy the freedom of having all my files backed up every 6 hours, and only using disk space for files that change!
Album organization
I name my folders YYYY-MM-DD_Event_string. This is mostly because album, the primary program I use to generate photo albums, parses that string in a pretty way — it separates out the date and turns underscores into spaces. I’ve since started putting them under year-labelled directories, for example, “2005/2005-05-21_Great_Wall_Eriks_picks.”
One of the things album doesn’t do well is leave originals “alone.” It’s a simple script that sticks a “tn” directory in each album directory, along with an index.html file. Well, I’d rather have a pristine directory tree to work with. I also don’t want to waste 10G and deal with changes. Well, hard links to the rescue! Under pics, I have three folders:
pics/__ORIGINALS__pics/GalleryMirror2pics/By_Date_and_Topic
I created By_Date_and_Topic and GalleryMirror2 via cp -l. I use album’s .hide_album magic file to have it ignore __ORIGINALS__ and GalleryMirror2, and thus album just leaves things in By_Date_and_Topic (and a few other files we’ll get to in a second).
Something I haven’t quite solved is keeping the three in sync… what I want to do is dump pictures into a folder, and then run some script or web page wizard that automatically creates the folders (after asking me for the event name), and copies them out. Right now I’m doing that manually, and it’s a drag.
Album and Gallery2
The reason for the separate directories is I’m playing with both album and Gallery2. Gallery2 is another photo-album generator. However, instead of being the “simple script with templates” model that album is, it’s more of a full-fledged beastie with database requirements and everything. The good news is it has a ton of additional features. The bad news is that it’s slower and a bit more of a pain to operate. I’m still trying to figure out which I like, thus I want to be able to deal with both for a while.
Process
Here’s what I want to do:
- Upload pics from my camera somewhere.
- Have some wizard automatically segment the photos into “shoots” - e.g. folders that group pictures taken about the same time into the same folder. Presumably, this is done by assuming photos taken within N seconds of each other are part of the same shoot, where N is something like 30 minutes and is adjustable.
- Prompt me to name the shoots, and modify the contents if needed.
- Save ‘em to an album, calculate thumbnails, and be done with it.
- Oh, while it’s saving, it should auto-rotate the pics (in a lossless way for jpegs)
Optionally, there may be a sub-wizard that prompts me to write captions about a picture, or write a detailed description of an album. Or perhaps it has plug-ins so I can just auto-blog it or some such.
Oh, and what I really want is for all this to not be on my server. It’s reasonably fast enough when I’m sitting next to it, but DSL upload is pretty crappy. So, I need on the order of 20G starting to dump all these photos on.
Tags / Searches
One of the things I do with album is create directories and use symlinks to link albums from the By_Date_and_Topic directory into other special directories, such as Latest or Vacations. It’s easy enough, and as long as I don’t change the names of folders (which I rarely do), it works great. The problem is that it’s a bit of a pain to do this after I’ve done through all the work to do it. Perhaps things like auto-searches (Latest within N days) or Flickr-like tags would be a better solution… certainly symlinks are a kludge.
How close we are
We’re pretty close, but there’s still too much manual process all around. Importing new pics is the biggest issue… once they’re into an album or a gallery, we’re just talking about more features on the scripts. And they’re all perl or php, so that’s easy to do. But it’s still going to be tough to get this all working smoothly… and that’s the big issue, I think. Once you have lots of pictures, you want to move to a “deliver and dump” kind of model, as you have to deal in bulk.
Wonder who will come up with the right solution first.