Getting Your iCloud Photos Into Wasabi: Three Methods That Actually Work
Want to move your iCloud Photos library to Wasabi object storage? This guide covers three practical approaches—browser download and upload, a CLI-based transfer using icloud-photos-downloader and the Wasabi Python SDK, and a fully cloud-based option using CloudsLinker—so you can pick what fits your setup.
Introduction
If you've been eyeing Wasabi as a long-term home for your photo library, you're probably thinking about cost. Wasabi's flat-rate pricing with no egress fees makes it genuinely attractive for archiving large iCloud libraries that you want preserved but don't need to browse daily. The catch is that moving photos out of iCloud isn't as simple as dragging a folder. In this guide, I'll walk through three real methods for getting your iCloud Photos into Wasabi, from the basic browser approach to a Python SDK upload, and finally a cloud-to-cloud option that skips local storage entirely.
iCloud Photos keeps your entire photo library synced across iPhone, iPad, and Mac. It's beautifully integrated into the Apple ecosystem — but storage can become expensive quickly.
- Only 5 GB free shared across backups, photos, and files.
- Paid iCloud+ tiers scale up to 12 TB.
- Optimized storage keeps full-resolution photos in the cloud.
- Tight Apple lock-in — best experience happens inside Apple devices.
Many users love the seamless syncing — until their photo library crosses 200 GB or 500 GB and monthly costs start stacking up.
Wasabi is an S3-compatible object storage service built primarily for bulk storage at a flat rate, with no egress or API request fees.
- $7/TB/month flat pricing — no surprise charges for downloads.
- S3-compatible API — works with most tools that support Amazon S3.
- Multiple regional buckets across US, EU, and APAC.
- No built-in photo viewer — you'll need a third-party tool to browse images.
Wasabi isn't designed for daily browsing the way Google Photos is. It's better suited for archiving — storing originals you want preserved without paying iCloud's premium tier prices. Accessing files typically requires a compatible app or the Wasabi web console.
The most common reason people consider Wasabi for photo archiving comes down to a simple cost calculation. Once an iCloud library grows past a few hundred gigabytes, the monthly iCloud+ subscription adds up faster than it feels like it should — especially for photos that are just sitting in storage and rarely being viewed.
Wasabi's flat $7/TB/month rate with no egress fees makes long-term archiving predictable. One use case that comes up often: photographers who shoot in RAW format end up with libraries in the terabyte range within a few years. Keeping those originals in iCloud gets expensive. Moving them to Wasabi as a cold archive — with a local backup for anything actively being edited — is a workflow that genuinely makes financial sense.
- Predictable Cost: No egress fees means you're not penalized for retrieving your own files.
- S3 Compatibility: Works with rclone, Cyberduck, and most backup tools that support S3.
- Long-Term Archiving: Good fit for storing originals you want to keep but don't access constantly.
- Regional Bucket Options: You can place data in a region that fits your compliance or latency needs.
Worth noting: Wasabi has a 90-day minimum storage policy — files deleted before 90 days are still billed for the full period. That's not a dealbreaker for archiving, but it's worth knowing before you start moving things around aggressively.
Method 1: Download from iCloud Photos, Then Upload to Wasabi
This is the most straightforward path — no tools to install, no accounts to link.
Log in to iCloud Photos on the web, select your images or albums, download them to your computer, and then upload them into your Wasabi bucket via the web console or a compatible S3 client like Cyberduck.
- Works for small libraries
- No third-party tools required beyond an S3 client
- Manual control over what gets transferred
The downside is time and bandwidth. If your library is 300 GB or more, downloading locally and then uploading again doubles the work — and ties up your internet connection for hours on each leg of the transfer.
For libraries under 20 GB, this is perfectly reasonable. For anything larger, the methods below will save you a lot of waiting.
Method 2: Use icloud-photos-downloader and the Wasabi Python SDK
If you're comfortable with the command line, this approach gives you more control and handles larger libraries much better than the browser method.
The idea is to use icloud-photos-downloader to pull your photos from iCloud to a local directory, then use the Wasabi Python SDK (which is boto3 pointed at Wasabi's endpoint) to upload them into your bucket.
Here's the general flow:
- Install icloud-photos-downloader:
pip install icloudpd - Run
icloudpd --directory ./photos --username [email protected]and complete 2FA when prompted. - Install boto3:
pip install boto3 - Configure your Wasabi credentials (Access Key ID, Secret Access Key, and the appropriate endpoint, e.g.
s3.wasabisys.com). - Use a boto3 upload script to push the downloaded folder into your Wasabi bucket.
A minimal boto3 upload looks something like this:
import boto3
import os
session = boto3.session.Session()
s3 = session.client(
service_name='s3',
endpoint_url='https://s3.wasabisys.com',
aws_access_key_id='YOUR_ACCESS_KEY_ID',
aws_secret_access_key='YOUR_SECRET_ACCESS_KEY'
)
for root, dirs, files in os.walk('./photos'):
for file in files:
local_path = os.path.join(root, file)
s3_key = local_path.replace('./photos/', '')
s3.upload_file(local_path, 'your-bucket-name', s3_key)
print(f'Uploaded: {s3_key}')
This method is more work to set up, but once it's running it's reliable and handles large libraries without you having to babysit a browser. You can also run it on a schedule for incremental syncing.
The main limitation: you still need local disk space to stage the downloads before uploading. If your library is 500 GB, you'll need that much free space available temporarily.
Method 3: Move Your iCloud Photos to Wasabi in the Cloud (No Downloads)
Why Some Users Skip the Download Step Entirely
If your photo library is already hundreds of gigabytes, downloading everything to your laptop just to upload it again feels unnecessary. Using CloudsLinker allows the transfer to run directly between iCloud Photos and Wasabi — entirely online, without touching your local machine.
Step 1: Add iCloud Photos
After signing in, click Add Cloud and select iCloud Photos. Log in with your Apple ID and complete two-factor authentication if required.
Once connected, your albums and photo folders appear inside the dashboard, similar to browsing them on iCloud.com.
Step 2: Connect Wasabi
Next, choose Wasabi from the cloud list.
You'll be asked to enter your Access Key ID, Secret Access Key,
and your Wasabi endpoint (for example, s3.wasabisys.com or the
region-specific endpoint for your bucket). No OAuth redirect here — just your bucket credentials.
After authorization, your Wasabi bucket will show up alongside iCloud Photos as an available destination.
Step 3: Configure and Start the Transfer
Open the Transfer section. Select iCloud Photos as the source and choose Wasabi as the destination.
You can select specific albums instead of moving your entire library. Given Wasabi's 90-day minimum storage policy, it's worth being intentional about what you move — transferring gradually by album lets you verify things landed correctly before committing the rest.
Step 4: Monitor Progress
The active task will appear in your Task List. You can check real-time progress, pause if needed, and review logs in case any files require attention.
Comparing the 3 Ways to Move Photos from iCloud Photos to Wasabi
There's no single "best" way to move your iCloud Photos library to Wasabi. It mostly comes down to how much you're moving and whether you're comfortable with a bit of command-line work. If cost savings on large archives is the goal, all three methods get you there — they just vary in how much local storage and manual effort they require. Here's a quick side-by-side of the three approaches in this guide.
| Method | Ease of Use | Speed | Best For | Uses Local Bandwidth | Skill Level |
|---|---|---|---|---|---|
| Web Browser (Download → Upload) | ★★★★★ | ★★★☆☆ | Small batches, occasional exports | Yes (download + upload) | Beginner |
| icloud-photos-downloader + Wasabi Python SDK | ★★★☆☆ | ★★★★☆ | Large libraries, users comfortable with CLI | Yes (requires local staging) | Intermediate |
| CloudsLinker (Cloud-to-Cloud) | ★★★★★ | ★★★★★ | Large libraries, hands-off transfers | No | Beginner |
For smaller exports, the browser method is perfectly adequate. If you want more control and don't mind a bit of setup, the icloud-photos-downloader + boto3 combination is solid and scriptable. But for moving a big library without needing hundreds of gigabytes of local staging space, cloud-to-cloud transfer with CloudsLinker is the most hands-off option.
iCloud Photos doesn't behave like a normal folder of files, and Wasabi has a few quirks of its own worth knowing. These are the things most likely to catch you off guard.
- Wasabi has a 90-day minimum storage charge: files deleted before 90 days are still billed for the full period. This isn't a problem for archiving, but if you're testing with temporary files, keep it in mind.
- Web downloads from iCloud have selection limits: Apple limits how many items you can select at once on the iCloud Photos web interface. Work album-by-album rather than trying to grab everything in one go.
- The Python SDK method needs local staging space: icloud-photos-downloader writes files to disk before you upload them to Wasabi. Make sure you have enough free space — at minimum matching the size of what you're downloading in each batch.
- HEIC files are preserved as-is in Wasabi: Wasabi stores whatever you upload without conversion. If you want JPEG versions for broader compatibility, convert them before or after the transfer — not something you need to solve during the move itself.
-
Pick the right Wasabi region for your bucket:
use the endpoint that matches your bucket's region
(e.g.
s3.us-east-1.wasabisys.com). Using the wrong endpoint is one of the more common causes of upload errors. - Move in stages if you're not sure yet: start with older albums you rarely open. Confirm they're in Wasabi and intact, then continue. There's no rush, and it's easier to troubleshoot a small batch than an entire library.
- Keep your Wasabi credentials out of shared scripts: use environment variables or a config file rather than hardcoding your Access Key ID and Secret Access Key into scripts you might share or commit.
The single most useful thing you can do after any transfer: spot-check a sample of files in your Wasabi bucket. Download a few, verify they open correctly, and only then consider reducing your iCloud storage. It's a boring step, but it's the one that catches problems before they matter.
Frequently Asked Questions
s3.wasabisys.com for US East 1).
You can generate access keys from the Wasabi console under your account settings.
Conclusion
Moving a photo library from iCloud Photos to Wasabi is very doable, but the right method depends on your library size and how comfortable you are with the command line. The browser method works fine for smaller collections. The icloud-photos-downloader and Wasabi Python SDK route gives you more control and scales better. And if you'd rather skip the local step entirely, CloudsLinker handles the whole transfer in the cloud. Whichever path you take, check a sample of files in your Wasabi bucket once the transfer finishes—it's the easiest way to catch anything that didn't land correctly.
Online Storage Services Supported by CloudsLinker
Transfer data between over 48 cloud services with CloudsLinker
Didn' t find your cloud service? Be free to contact: [email protected]
Further Reading
Effortless FTP connect to google drive: Transfer Files in 3 Easy Ways
Learn More >
Google Photos to OneDrive: 3 Innovative Transfer Strategies
Learn More >
Google Photos to Proton Drive: 3 Effective Transfer Techniques
Learn More >