Should we use Azure Blob Storage or Azure Files for ERP document management and archival?

We’re architecting a document management system for our ERP application that will store invoices, purchase orders, and compliance documents. We’re debating between Azure Blob Storage and Azure Files, and I’d like to get community input on which makes more sense for our use case.

Our requirements: 500GB initial storage growing to ~5TB over three years, documents accessed via web application API and occasionally by users through mapped network drives, need to support both REST API access and SMB protocol, compliance requirements for immutability and retention policies, integration with our existing .NET ERP application.

Blob Storage seems cheaper and has better REST API support, but Azure Files offers native SMB which some users want for direct file access. What have others chosen for similar scenarios? What are the hidden gotchas we should know about for each option?

Let me provide a comprehensive analysis covering access patterns, cost implications, protocol support, and integration to help you make the right decision:

Access Pattern Analysis:

Your scenario describes two distinct access patterns:

  1. Primary: Web application API access (programmatic, high volume)
  2. Secondary: Occasional user access via mapped drives (interactive, low volume)

Blob Storage excels at pattern #1 - it’s optimized for object storage with REST API access. Azure Files excels at pattern #2 - it’s optimized for file system semantics and SMB protocol.

Given that your ERP application will handle 90%+ of document access through APIs, Blob Storage aligns better with your primary use case. The secondary SMB requirement can be addressed through alternative approaches (more on this below).

Cost Analysis (5TB over 3 years):

Blob Storage Hot Tier:

  • Storage: $0.0184/GB/month × 5,120GB = $94.21/month
  • Transactions: ~$5-10/month for moderate API access
  • Total: ~$100-105/month
  • With lifecycle management to Cool/Archive for old docs: $60-80/month

Azure Files Standard:

  • Storage: $0.06/GB/month × 5,120GB = $307.20/month
  • Transactions: Included in storage cost
  • Total: ~$307/month
  • No lifecycle management to cheaper tiers

Azure Files Premium:

  • Provisioned capacity: $0.20/GB/month × 5,120GB = $1,024/month
  • Predictable performance but 10x more expensive

Over 3 years, Blob Storage saves you $7,000-9,000 compared to Azure Files Standard, or $33,000+ compared to Premium. This is significant budget that could fund other infrastructure needs.

Protocol Support & Integration:

Blob Storage:

  • Native REST API (excellent for .NET SDK integration)
  • SAS tokens for secure, time-limited access
  • Azure CDN integration for global delivery
  • Event Grid integration for document processing workflows
  • No native SMB (requires tools like Blobfuse or third-party solutions)

Azure Files:

  • Native SMB 3.0 (seamless Windows integration)
  • Also supports REST API through Files SDK
  • Can be mounted as network drive without additional tools
  • Limited event integration compared to Blob Storage
  • No CDN integration

For your .NET ERP application, Blob Storage integration is more natural and has better ecosystem support.

Compliance & Immutability:

This is where Blob Storage has a decisive advantage:

Blob Storage Immutability:

  • Time-based retention policies (perfect for your 7-year requirement)
  • Legal hold capability
  • WORM (Write Once, Read Many) compliance
  • Immutability is cryptographically enforced - even account owners cannot delete
  • Meets SEC 17a-4, FINRA, and other regulatory standards

Azure Files:

  • No native immutability features
  • Can set read-only attributes (easily bypassed)
  • Does not meet regulatory compliance standards for immutable storage
  • Would require custom solutions or third-party tools

For your compliance requirements, Blob Storage is the only viable option.

Recommended Architecture:

Based on all factors, here’s my recommendation:

Primary Solution: Azure Blob Storage

  1. Use Blob Storage as your document repository
  2. Implement lifecycle management:
    • Hot tier: Documents accessed in last 30 days
    • Cool tier: Documents 30-365 days old
    • Archive tier: Documents over 1 year old (compliance archive)
  3. Enable immutable storage with 7-year time-based retention
  4. Use Azure.Storage.Blobs SDK in your ERP application
  5. Implement SAS token-based access control

Addressing the SMB Requirement:

Option A (Recommended): Azure Files as a Small Staging Area

  • Provision a small (100GB) Azure Files Standard share
  • Users who need to edit documents check them out to Files share
  • Background process syncs edited documents back to Blob Storage
  • Cost: ~$6/month additional

Option B: Azure Storage Explorer or Third-Party Tools

  • Users access Blob Storage through Azure Storage Explorer GUI
  • Provides file-like interface without SMB
  • No additional infrastructure cost

Option C: Blobfuse (Linux) or Third-Party Mount Solutions

  • Mount Blob Storage as file system
  • More complex setup and maintenance
  • Not recommended unless you have specific technical requirements

Implementation Considerations:

  1. Document Metadata: Use Blob metadata and tags for document classification, search, and lifecycle management

  2. Versioning: Enable blob versioning for audit trail of document changes

  3. Performance: Use block blobs (default) for documents. For large files >100MB, use multi-part upload for better performance

  4. Security: Implement Azure AD authentication for your ERP application using managed identity instead of connection strings

  5. Backup: Azure Blob Storage has built-in redundancy (LRS/GRS), but consider operational backup for protection against accidental deletion

  6. Migration Path: Start with Hot tier, monitor access patterns for 3-6 months, then implement lifecycle management based on actual usage

Conclusion:

For your ERP document management scenario, Azure Blob Storage is the clear winner based on:

  • 50-70% lower cost over 3 years
  • Superior compliance features (immutability, retention policies)
  • Better REST API integration for your primary use case
  • Lifecycle management for cost optimization
  • More mature ecosystem for document processing

The SMB requirement can be addressed through a small Azure Files staging area or user-facing tools, at minimal additional cost. The cost savings and compliance capabilities of Blob Storage far outweigh the convenience of native SMB in Azure Files.

The only scenario where I’d recommend Azure Files is if >50% of your access is through SMB and you don’t have strict immutability requirements - which doesn’t match your described use case.

The cost analysis is helpful. What about the immutability and retention requirements? We need to comply with regulations that require certain documents to be immutable for 7 years. I know Blob Storage has immutable storage policies - does Azure Files have equivalent functionality? And how do the two compare for lifecycle management and archival scenarios?

Here’s a hybrid approach to consider: use Blob Storage as your primary document repository for the ERP application, and if you absolutely need SMB access for certain users, you could set up a small Azure Files share as a cache or staging area for documents that need to be edited. Most documents in ERP systems are write-once-read-many anyway, so direct file system access isn’t necessary most of the time. This gives you the cost benefits and compliance features of Blob Storage while accommodating the occasional SMB requirement.

From an integration perspective, both work well with .NET. Azure.Storage.Blobs SDK is mature and well-documented. Azure Files can be accessed via SMB or the Azure.Storage.Files.Shares SDK. For REST API access from your ERP app, Blob Storage is more straightforward - you can generate SAS tokens for secure access, use Azure CDN for faster delivery if needed, and integrate easily with Azure Functions for document processing. The developer experience with Blob Storage is generally smoother for application-centric scenarios.

Blob Storage is superior for compliance scenarios. It has native immutable blob storage with time-based retention policies and legal hold capabilities - exactly what you need for regulatory compliance. Azure Files doesn’t have equivalent immutability features. You can set file attributes to read-only, but that’s not the same as cryptographically guaranteed immutability. For your 7-year retention requirement, Blob Storage with immutability policies is the clear choice. You can also use lifecycle management to automatically move old documents to Archive tier, drastically reducing storage costs.

The SMB requirement is key here. Azure Files is purpose-built for SMB/CIFS scenarios and will give you seamless integration for users who need to map network drives. Blob Storage can’t be directly mounted as a network drive without third-party tools. However, if 90% of your access is through the ERP application’s REST API and only 10% is direct file access, you might be over-engineering by choosing Azure Files just for that 10% use case.