How to Transfer Files from AWS S3 to Azure Blob Storage
Moving Between the Two Largest Cloud Providers
Section titled "Moving Between the Two Largest Cloud Providers"AWS S3 and Azure Blob Storage are the two most popular object storage services in the world. Companies move data between them for all sorts of reasons: switching primary cloud vendors, setting up multi-cloud redundancy, following compliance requirements, or simply taking advantage of Azure's pricing for certain workloads.
The transfer itself is the hard part. Both providers have their own tools (AWS DataSync, Azure Data Box, AzCopy), but those tools are designed for their own ecosystem. Cross-cloud transfers with native tools usually require intermediate steps, scripting, or third-party managed services that charge per-GB.
The Usual Approaches
Section titled "The Usual Approaches"AzCopy + AWS CLI
Section titled "AzCopy + AWS CLI"You can download from S3 using the AWS CLI and upload to Azure using AzCopy. This requires local disk space for the intermediate files, separate authentication for each tool, and scripting to coordinate the two.
Managed Migration Services
Section titled "Managed Migration Services"Services like Flexify charge per-GiB transferred. For large migrations (10 TB+), the fees add up. Your data also routes through their infrastructure, which may not meet compliance requirements.
rclone
Section titled "rclone"rclone supports both S3 and Azure Blob. It works, but you need to configure both remotes, handle multipart upload settings, and manage the transfer from the command line.
How Blober Handles It
Section titled "How Blober Handles It"Blober connects to both AWS S3 and Azure Blob Storage natively. You configure both providers with their respective credentials, create a workflow, and run the transfer. Files stream from S3 through your machine to Azure without intermediate storage.
What Blober Does That Matters for This Transfer
Section titled "What Blober Does That Matters for This Transfer"Parallel uploads to Azure. Blober uses Azure's uploadStream with configurable concurrency. Large files are streamed in parallel chunks, which makes a noticeable difference on fast connections.
S3 multipart downloads. On the source side, Blober downloads from S3 using the AWS SDK with multipart support. Large objects do not bottleneck the pipeline.
Azure tier selection. When setting up Azure as your destination, you choose which storage tier new blobs land on: Hot, Cool, Cold, or Archive. This means you can migrate directly to the tier that matches your access pattern without a second step to change tiers after upload.
Write behavior options. You can configure Blober to overwrite existing blobs, skip files that already exist at the destination, or skip only archived blobs. This is useful for incremental migrations where you want to resume without re-transferring what is already there.
Step-by-Step
Section titled "Step-by-Step"- Connect AWS S3: Add S3 as a provider with your Access Key ID, Secret Access Key, and region. Blober lists your buckets.
- Connect Azure Blob: Add Azure Blob Storage with your connection string. Blober verifies and lists your containers.
- Create a workflow: Set S3 as source, Azure Blob as destination. Browse and select files or entire buckets.
- Choose Azure options: Pick the storage tier and write behavior.
- Run: Blober transfers with progress tracking and auto-resume.
Migrating Buckets in Bulk
Section titled "Migrating Buckets in Bulk"Most S3-to-Azure jobs are not a single file, they are whole buckets or whole prefixes. Blober is built for that.
- Select an entire bucket or prefix. Browse your S3 bucket in Blober, select everything at the top level or drill into a prefix, and queue it all in one workflow. You do not enumerate keys by hand or script a loop.
- Mass transfers run in parallel. Blober downloads from S3 with multipart support and uploads to Azure with parallel streams, so a bucket with thousands of objects moves as a continuous pipeline rather than one object at a time.
- Resumable with skip-existing. Set the write behavior to skip blobs that already exist at the destination. If a multi-terabyte run is interrupted, or you stop and continue tomorrow, re-running the workflow picks up only what has not transferred yet. That is what makes a mass migration practical: you are never forced to start over.
- Land directly on the right tier. Pick the Azure tier for the whole job, so a bulk archive migration writes straight to Cool, Cold, or Archive instead of landing on Hot and needing a second pass.
For a move of 5 TB across 200,000 objects from us-east-1 to westeurope, you point Blober at the bucket, choose the destination container and tier, turn on skip-existing, and let it run. Progress is tracked per file, and the run survives a dropped connection.
Cross-Region Awareness
Section titled "Cross-Region Awareness"If your S3 bucket is in us-east-1 and your Azure storage account is in westeurope, Blober handles the cross-region transfer. S3's cross-region copy limitations (which affect native S3-to-S3 copies) do not apply here because the data flows through your machine.
The tradeoff is that transfer speed depends on your internet connection. For very large migrations (50 TB+), this is slower than a datacenter-to-datacenter transfer. But for migrations under 10 TB, running through Blober on a fast connection is often faster than coordinating managed services.
Pricing Comparison
Section titled "Pricing Comparison"| AWS S3 Standard | Azure Blob Hot | Azure Blob Cool | |
|---|---|---|---|
| Storage (per TB/mo) | $23 | $18 | $10 |
| Egress (per GB) | $0.09 | $0.087 | $0.087 |
| PUT requests (per 10K) | $0.005 | $0.065 | $0.10 |
Azure is generally cheaper for storage. S3 is cheaper for write-heavy workloads. The right choice depends on your access patterns.
Frequently Asked Questions
Section titled "Frequently Asked Questions"How do I copy data from S3 to Azure Blob without AzCopy or scripts? Connect both providers in Blober, create a workflow with S3 as the source and Azure Blob as the destination, select your buckets, and run. There is no AzCopy command, no AWS CLI loop, and no intermediate download to your disk. Files stream from S3 straight to Azure.
Can I migrate a whole bucket, or only individual files? Either. Select a single object, a prefix, or an entire bucket. Whole-bucket and mass-data migrations are the common case.
Does the data land on the tier I want? Yes. You choose the Azure access tier (Hot, Cool, Cold, or Archive) for the destination, and new blobs are written to that tier on arrival. There is no second pass to re-tier after upload.
Who pays for the data transfer? AWS charges egress (data transfer out) when data leaves S3, billed per GB. Azure does not charge to ingest. So the transfer cost sits on the AWS side, the same as it would with any tool that reads from S3. Blober adds no per-GB fee of its own.
How large a migration can this handle? Transfers run through your machine, so speed depends on your connection. For migrations up to roughly 10 TB on a fast link, running Blober is often faster than setting up a managed service. For datacenter-scale moves of 50 TB and up, a provider appliance may finish sooner, but Blober still works and resumes if interrupted.
Related Guides
Section titled "Related Guides"- How to Bulk Change Azure Blob Storage Access Tiers once your data is on Azure
- How to Move Azure Blob to Cloudflare R2 for moving off Azure later
- Provider setup: AWS S3 and Azure Blob
Get Blober
Section titled "Get Blober"Migrate S3 buckets to Azure Blob in bulk, with no AzCopy scripts and no per-GB transfer fee from us. One-time purchase, no subscription.