S3 is seemingly costing us a lot. While it has its benefits, I think we could do with moving images from s3 to the server we are running the site from. How difficult/impossible of a task would that be?

  • When I say a lot, $25 after 2 days in production Commented Jul 17, 2014 at 13:23

2 Answers 2


The easiest way I imagine would be to

  1. Create a local folder
  2. Download all the files into the folder (outside of Assets - via Transmit or similar)
  3. Change your source settings from S3 to Local with correct paths

And you're done. Whoa, that was easy :)

  • 1
    Wouldn't step 4 be to update indexes?
    – Matt Stein
    Commented Jul 17, 2014 at 14:02
  • 3
    Assets stores the whole structure relative to the Source. The thumbnails are stored based on the Assets ID. None of those parameters change so, from Assets Index point of view nothing has changed at all. Commented Jul 17, 2014 at 14:13
  • @AndrisSevcenko Can you confirm if this workflow would work going from local to s3 as well? 1. Create an S3 bucket, 2. Upload all files into the bucket (outside of Craft), 3. Update the Asset Source settings from Local to S3 Commented Jan 20, 2016 at 22:48
  • @BenParizek can't see why not. It's all the same, to Craft, as long as the structure within the Assets source remains identical. Commented Jan 21, 2016 at 7:41
  • This works! One note that messed me up: If you use the cache tag, you'll also need to clear template cache and compiled templates in Settings. Do NOT clear anything image related though, or all image transforms will need to be re-generated, which can be an issue if there are a lot of them
    – Bryce
    Commented Nov 6, 2019 at 16:59

Ignore my answer. Andris' is better.

There is no functionality in Craft that I'm aware of, but you should be able to handle it similar to moving a website. The hardest part I think would be updating fields and references within entries.

  1. Set up your new asset source (whether local or another object store).
  2. Move all of your files to the new source.
  3. Go to the settings page in the control panel. First icon under Tools is Update Asset Indexes.
  4. Add your new source to Asset fields, and go update all of the entries.
  5. After the entries are updated, you can just delete the old asset source.

There's really no automated way to update fields and entries, but it might be possible with a really clever plugin.

  • 1
    Wouldn't changing the asset-source type to local, keep all relations? And just moving the files + updating the asset indexes be enough?
    – Victor
    Commented Jul 17, 2014 at 13:35
  • 1
    Simply changing the source type would be sufficient in this case, provided that the files are copied to the local server. Commented Jul 17, 2014 at 13:41
  • I'm not sure. It depends on how they're stored in the database. I'll go check and update my answer if I find anything that suggests what you say will work. Commented Jul 17, 2014 at 13:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.