There’s no such thing as a “best” workflow for importing and editing photos, and any photographer’s preferences will change over time. That said, my own idea of the perfect workflow has never changed all that much: I’ve always wanted to upload straight from my camera to Lightroom’s cloud storage, and have my photos ready to edit across any platform right after I take them. I don’t use Lightroom Classic, and I often edit on the go away from my computer.
It’s asking for a lot; but “camera to cloud” (or at least camera to editing workstation) is nothing new, and belongs to a long line of efforts to reduce time from shot to edit. You don’t need any technology to do this: just add a card runner, something done at least since the first digital cameras were used in the ‘90s. Agencies have paid through the nose for years for wired Ethernet lines at red carpets, and my former colleagues at The New York Times started sending photos wirelessly to offsite editors more than a decade ago using a backpack computer and multiplexed 4G networks.
A short-lived workflow of my own was technically able to get photos from my camera to the cloud while I was at a venue… Though it wasn’t very scalable or practical:
I gave that up pretty quickly.
For any solution to a technical problem, you end up making trade offs in time (does this add extra work while I’m shooting?), cost (do I need to hire someone or pay for a subscription service?), and your willingness to change your workflow. And so far, nothing’s ever wound up being easier than just waiting until I get home - anything that isn’t fully automated just introduces more work to be done when I should be focusing on shooting.
But last month, I found a Lightroom API endpoint that lets you upload images to a user’s cloud catalog, no matter where the app is running. This is key to fully automating camera to cloud: while there are plenty of ways to get photos from a camera to a phone or a server — some brands have mobile apps and most can use FTP — it’s only once those files are imported into Lightroom that they can sync to the cloud and allow for cross-platform editing.
That means the camera doesn’t have to send the photos to a consumer device with Lightroom installed on it. Instead, I could:
I shot a few shows that way this month, and wanted to share some takeaways.
5G network speeds let you work entirely with RAW files. I may not have true 5G speeds at my apartment yet, but at most NYC venues the upload speed is really, really fast. Tethered to my iPhone, a few hundred lossless compressed RAWs taken during an artist’s set would easily upload before the next one started.
You can adapt to available bandwidth. Sony, and I assume most camera brands, gives you the option when using FTP to upload every photo as you go, or individual photos on-demand. I usually leave Auto FTP Upload to Server on so everything is sent out. But if bandwidth is limited I can set my Fn button to [TK] FTP this image to upload selections. You can also rate images as you go, and upload all photos matching a rating later on in a batch.
No distractions while shooting. Some brands make it easier than others to pull individual photos from camera to phone when you need to move quick edits on site, but that always requires some amount of attention and waiting around on your phone. Going direct to the cloud removes that.
Immediate access to photos. This was the whole point, after all. But having quick access to photos in practice was an even bigger win than I expected. Even if just a subset of photos had uploaded by the end of a show, that let me spend the 30-60 minute subway ride home culling and picking selections. This won’t be a big deal to everyone — especially if you drive — but to me that can easily mean an extra hour of sleep.
Some general stats: It usually takes about 60 seconds from when I shoot an image to when it’s available in Lightroom — so I use the word “immediate” a little loosely here, but for concert photography it essentially is. I also tended to have a 45Mbps upload speed, which would move through 6-7 photos a minute (a mix of 34 and 50 megapixels). In practice, my B-camera finished uploading before the first three were done; my A-camera would finish uploading throughout the set.
No in-camera rating or culling. If you upload all photos automatically, any ratings you add later on won’t be updated in the cloud. Sony even prevents you from adding a rating while an FTP transfer is in progress (frustratingly, even if that photo hasn’t started uploading yet). You can rate them later in Lightroom of course, but I do miss being able to quickly rate a good shot in the moment.
Things like this could maybe be solved for proprietary integrations like Fujifilm’s Frame.io camera to cloud integration, but any setup using FTP will probably always have this limitation.
Battery life. My entirely unscientific measurements showed I burned through about twice as much battery on my a1 and a7IV when constantly uploading over FTP + WiFi during a shoot. (Although I still never ran out of juice over a 3 hour shoot.)
Inconsistent access to bandwidth. It goes without saying that not everyone’s phone plan has a large data tethering allowance, fast wireless networks aren’t universal and not every venue has fast WiFi upload speeds.
On the whole, every show went well enough that this has become my production workflow overnight. There are some bug fixes to make and edge cases to handle, but the low supervision it requires while shooting means I gain fast access to photos with almost no additional work. And the cost per month, while not zero, is less than the ticket fees for an average show. (I didn’t get into the application architecture here, but the one non-serverless component costs roughly $14 / month, and could be run only on-demand.)
But in the meantime, I’d love to hear if you’ve tried out any camera to cloud solutions. And if you have acoding background and are interested in using this workflow, I’ve uploaded the main code to GitHub here, a Google Cloud Function that imports files uploaded to an FTP server into Lightroom: https://github.com/abstrctn/gcs-to-lr. This isn’t the entire pipeline: my FTP server is set up to sync its files to a Google Cloud Storage bucket to trigger that Function; but I’m happy to help walk you through setting it up if you’re interested!
Here’s a simplified diagram of the components involved for anyone interested: