Vulnerability in EPiServer.Forms

Try our conversational search powered by Generative AI!

André Brynildsen Brynildsen
Sep 9, 2011
(4 votes)

Virtual Path Provider for Amazon S3

Many of our customers have requested a better solution for tackling large campaigns that have high demand to both server capacity and speed. We considered several different cloud services before choosing the most popular one Amazon Web Services. This was largely because of their great API, documentation and community.

The goal was to create a seamless integration between Amazon Cloud and EPiServer CMS. The result was a Virtual Path Provider (VPP) for Amazon S3. The editor should have the same capabilities as the built-in Virtual Path Provider from EPiServer.

Amazon Simple Storage Service
The Provider is using Amazon Simple Storage Service (S3). S3 is Amazon’s cloud storage solution. It’s versatile, reliable, fast and scalable. For more information read and

Important thing to mention is that S3 doesn’t use the traditional file structure like folders and files, instead S3 uses “buckets” in which you store objects. You can think of a bucket as a separate hard drive where you’ll store your files.

Getting Started Guide” from Amazon is a good starting point.

Use Amazon S3 as CDN (Content Delivery Network)
AWS S3 is not a CDN. A CDN delivers files from a distribution of servers around the world. Visitors get access to file from the fastest resource available (most likely the closest server). Amazon S3 only has a few centers around the world and your bucket will be located in only one of these centers.

Amazon CloudFront is a service for content delivery. CloudFront is optimized to work with Amazon S3 and it’s very easy to set it up. With the “Getting Started Guide” you will get all the help you need to get started.

Thanks to my colleague, Frederik Vig, we have created a NuGet packet. You will find it on EPiServer’s NuGet feed.

Because of a reported bug in NuGet’s XML transformation (we need your vote to fix it) you’ll have to manually configure episerver.config for now. 


You’ll find AWS access key and secret key under “Security Credentials” located in your “Account”.


You can download the code from Coderesort.

Thanks to Coop Norge Handel for given us the opportunity to develop this provider and share it with the community.

Sep 09, 2011


Sep 26, 2011 09:46 AM

Just tried this module and it works like a charm! EPiServer + CDN/Cloud have never been easier.

Thanks for sharing!

Eirik Vika
Eirik Vika Jan 3, 2013 09:55 PM

I have installed the AWS S3 library from NuGet, but when i try to set the pathprovider for pagefiles i get the error:
""The VirtualPathProvider configured to handle page files must return directories that implement IPageDirectory"."

Any tip regarding this problem?

See my problem here:

Please login to comment.
Latest blogs
A day in the life of an Optimizely Developer - Optimizely CMS 12: The advantages and considerations when exploring an upgrade

GRAHAM CARR - LEAD .NET DEVELOPER, 28 Nov 2023 In 2022, Optimizely released CMS 12 as part of its ongoing evolution of the platform to help provide...

Graham Carr | Nov 28, 2023

A day in the life of an Optimizely Developer - OptiUKNorth Meetup January 2024

It's time for another UK North Optimizely meet up! After the success of the last one, Ibrar Hussain (26) and Paul Gruffydd (Kin + Carta) will be...

Graham Carr | Nov 28, 2023

Publish content to Optimizely CMS using a custom GPT from OpenAI 🤖

Do you find the traditional editor interface complicated and cluttered? Would you like an editorial AI assistant you can chat with? You can!

Tomas Hensrud Gulla | Nov 28, 2023 | Syndicated blog

Optimizely Graph and Next.js: Building Scalable Headless Solutions

Optimizely Graph harnesses the capabilities of GraphQL, an intuitive and efficient query language to, transform content within an Optimizely CMS in...

Szymon Uryga | Nov 27, 2023

Getting Started with Optimizely SaaS Core and Next.js Integration: Testing Content Updates

The blog post discusses the challenges of content updates on a website using Optimizely CMS, Next.js, and the Apollo Client due to Apollo's local...

Francisco Quintanilla | Nov 27, 2023 | Syndicated blog

Performance optimization – the hardcore series – part 4

Let’s take a break from the memory allocation, and do some optimization on another aspect, yet as important (if not even more important) – database...

Quan Mai | Nov 25, 2023 | Syndicated blog