When Apple introduced Photo Stream as part of its iCloud offering a year ago, I jumped on board. By that time, my iPhone was already my primary camera. The old Canon point-and-shoot was collecting dust in a corner. And Photo Stream solved a real problem for me. My phone syncs with my laptop, but I keep my photos within Aperture, running on a different Mac. I would sync the phone’s pictures to iPhoto and then have to remember every month or two (typically when the tiny laptop drive was about to burst at the seams) to move those pictures over to the Aperture server. The Aperture server then gets backed up two places locally, to a cloud backup, and pushes to Flickr. Backups galore!
My iCloud + Photo Stream workflow stopped having the manual “copy from iPhoto to Aperture” step and became more automated. The phone pushes to iCloud and Aperture pulls from it. It looked like this:
Unfortunately, I found that a few pictures did not always make it. Maybe one in ten photos at random existed on my iPhone and the iPhone believed they were in the Photo Stream, but Aperture did not see them in the Photo Stream. Most photos automatically synced over iCloud to Aperture, but I still had to use the USB sync cable to get them all to iPhoto and then manually copy them to the Aperture server to catch the ones it missed. In fact, the manual step became even more manual because I had to look at the individual pictures and not import duplicates. In theory, Aperture has an import flag to not import duplicates, but it never worked so I had to do that manually. The iPhone-to-iPhoto-to-Aperture step, like always, happened every month or two, so no real change there.
The new workflow looked a bit like this:
Just last month when I searched for pictures and movies of Charlotte the boy-cat, I discovered that video files gave every appearance of coming across via Photo Stream, but they were actually all damaged. Every one was truncated to one frame of video. A single picture, really, in a video container instead of several minutes of 30 pictures per second.
Every movie over that year of using Photo Stream looked like it synchronized successfully and had since been deleted from my laptop’s tiny disk, but in reality only measured a few dozen kilobytes (less than a second) when they should have measured several hundred megabytes.
So that was a year’s worth of video. Gone. Fortunately, I do have the first frame of video from each, so I know exactly what I lost (only a dozen or so movies, nothing super-important). But still, every photo should have come across (not just 9-ish out of 10) and, more importantly, the videos should have either not come across or should have synchronized in full.
Part of this is my fault. I should have paid closer attention to the pictures and video coming across. Had I thought to play even one of them, I would have noticed. I put this on par with the system administrator that performs backups but never actually does any test-restores to verify that the backups are not corrupted.
Because of all of this, I have changed my workflow. It is now more simple and more robust. I’m syncing to Dropbox. Every time I launch the Dropbox iPhone app, it pushes my pictures and videos out to all my other machines. The Aperture server gets a copy that, even without touching, gets backed up to two places. The next time I’m at that machine, I can launch Aperture, import, tag, push to Flickr, and delete the Dropbox copies. The only step I did not have before was deleting the photos from the phone to free up space. (Previously, that happened automatically upon iPhoto sync.) That’s easy enough to do if/when it becomes an issue.
The new workflow looks like this:
It’s not as many steps as the Photo-Stream-plus-iPhoto-to-catch-stragglers workflow which is nice. But most importantly, I feel that I have much higher confidence in it working correctly.