I ran into a rather serious issue recently: a human on my team (me) intentionally (but accidentally) deleted an Amazon S3 bucket that was serving files to a WordPress site. The solution to the problem follows:
- Cry when you realize you cannot restore a deleted S3 bucket.
- Search your computer, your co-workers’ computers, your former co-workers’ computers, and your catastrophic backup system for a backup only to realize that a backup does not exist anywhere.
- Call the artist who originally-supplied the images and thank The Lord that he keeps solid backups of his historical hard drives and doesn’t delete things like a wild idiot (e.g. like me).
- Upload all the important/relevant media to WordPress via the normal WP uploader.
- Rewrite all the image and pdf urls in the database so they link up to the newly-uploaded versions:
Using Better Search & Replace plugin:
2021/01/ => 2022/03/
2021/02/ => 2022/03/
2021/03/ => 2022/03/
etc.
Using REGEX with Redirection plugin:
Everything prior to 2020 with /wp-content/uploads/20[01]\d/*
Everything prior to 2022 with /wp-content/uploads/202[01]/*
Jan/Feb with /wp-content/uploads/2022/0[12]/*

- Test everything using a 404 error app such as Integrity.
- Rethink your catastrophic backup process and note that ManageWP does not backup WP media libraries that are on S3.
- Send a “thank you” gift to the artist who saved your ass.
Notes:
Again, you cannot restore a deleted Amazon S3 bucket…UNLESS you enable versioning BEFORE you delete it. S3 is about as reliable as they come but fail in the face of human errors.
More posts from themightymo.com
How to Connect a GoDaddy Site to ManageWP
GoDaddy owns ManageWP, and, strangely, they make it very difficult to add GoDaddy-managed WordPress sites to their ManageWP service. Thankfully, there’s a quick workaround: Visit https://yoursite.com/wp-admin/plugins.php?showWorker=1 — This will make the ManageWP “Worker” plugin visible. Copy the connection info from the ManageWP Worker plugin. Add the site per-normal on ManageWP. That’s it! I hope this…
How to check if your current page is the wp-login.php page
I realized this morning that my TMM Maintenance Mode WordPress plugin had a bug that was causing the wp-login.php page to be inaccessible. The solution was to write a simple function that checks whether or not we’re currently on a login page, and then add a call to that function in my code. Here’s the…
WooCommerce Product Image Gallery Not Loading with WP Rocket Active
Today I updated a WooCommerce site, and everything worked fine, except for the images on product pages – they were not displaying at all. After a lot of trial & error, I realized that WP Rocket was to blame. I’m not sure exactly what the issue was (though my hunch is that it had to…