[Unofficial] Uploading a Sparkle website with a large "images" folder

[Unofficial – use at your own risk]

Here’s how I do a rollout of a Sparkle website with a large number of images (one of my clients has 4,656 images as of today, for instance):

Using Transmit (FTP):

  1. Create an “images-new” folder on the website.

  2. Upload contents of the exported “images” folder to this new folder.

  3. While these are uploading:

    a. Delete the older site icons on the live site (files with a date/timestamp suffix)

    b. Queue up the upload all the website files except for the “images” folder (in Transmit, this upload will not begin until all the images have been uploaded [step 2]).

  4. Once (2) and (3) are complete:

    a. Rename the previous live “images” folder to “images_prev1” or similar, or delete it (takes longer).

    b. Rename the newly-populated “images-new” folder to “images" (to make it live).

You may ask why I wouldn’t use Sparkle’s own FTP client to handle a site like this. I could, but I like to minimize the downtime of the website, which only happens briefly as I rename the images folders. I use Transmit’s fly-out activity progress bar(s) to watch for when the mother lode upload of images is complete.

But have you benchmarked this versus Sparkle?

Also while you might be minimizing downtime of the main content, any changed images are not in sync until you manually rename the images folder.

Sparkle only transfers changed files, and employs techniques to minimize downtime.

Specifically Sparkle will upload any new file to a sparkle_uploads folder, and only when all files are on the server will begin a mass rename to move them into place.

Any new file (so for example new images, css and js files, that are timestamped) will go directly in place in the final location.

If Sparkle is re-uploading any image file that’s unchanged we consider this a a bug and would love to get in touch via email to look at the transfer logs etc.