The WP eStore plugin can be integrated with Amazon S3. This feature lets you securely store and deliver digital products/downloads using Amazon’s Simple Storage Service (S3).
Amazon S3 integration is really helpful when you want to sell large files without using/wasting bandwidth of your server.
The Amazon S3 integration involves the following two steps:
- Specify the Amazon S3 API details in the eStore plugin’s settings
- Specify the URI of your digital asset in the digital product URL field of the product in question
Amazon S3 Integration Video Tutorial
Checkout the amazon S3 integration video tutorial from our additional video tutorials section.
Amazon S3 Integration Details
Step 1 – Specify Amazon S3 API Details
The amazon S3 integration options can be found under the “AddOn Settings” tab in eStore Settings menu. Go to the following interface and specify your S3 API details:
WP eStore Settings -> AddOn Settings -> Amazon Web Services (AWS)
If you don’t already have your Amazon S3 API keys then read this document to learn how to get Amazon S3 API keys (you can find similar information on Amazon site also).
Once you have configured the amazon S3 access key and secret access key in the S3 settings section under the AddOn Settings tab of eStore, you are ready to start using your Amazon s3 account with WP eStore.
Step 2- Specify the S3 Asset Location
You need to tell WP eStore to redirect encrypted download links to the AWS S3 server using the AS3TP URI in the Digital Product URL field of the product. Basically, enter your Product URL using the following method in the “Digital Product URL” field:
Here, “bucket” is the name of the S3 bucket containing the digital product, and “folder/object” is the S3 key which points to the digital product.
You may also use “as3tps://” in place of “as3tp://” if you want the S3 download to be SSL encrypted. You also have the option of inserting “[email protected]” before the bucket name, if the S3 object is marked as “public” on the S3 server.
The following screen capture shows how to properly create this URI value
Here are some typical examples of valid AS3TP URI that you can use in eStore:
- as3tps://[email protected]/object
Remember to use one of the above URI methods to enter your product URL in the “Digital Product URL” field (Don’t just use the normal amazon S3 URL of the product in that field).
Use of Amazon S3 is completely optional, but provides several advantages for those who use it. The biggest advantage is that your eStore server is relieved of the burden of having to act as an intermediary when processing anonymized downloads. This will enhance the download experience for users, because they are directly downloading files from the higher bandwidth S3 server. And because the redirection is done using an expiring AWS presigned URL request, your digital products are protected; even if the user saves the redirection URL. And, successful downloads are no longer dependent upon the reliability of your hosting provider’s server.
What File Permission To Use in Amazon S3
When you upload a file to your amazon S3 account, you should make it private (not public). If you make a file private, then no one can download that file other than going via the encrypted link eStore creates after a purchase.
The following screenshot shows how you can make a file in your amazon S3 account private.
- Strict S3 bucket naming restrictions are enforced.
- Only virtual hosted style bucket names are supported. Path style bucket name access is not supported.
- CNAME DNS aliases are supported.
- Region specific end points are not supported.
- Use of “[email protected]” tells eStore not to presign URL for public objects. Forgetting to add “[email protected]” to the URI, generates a presigned URL, but no redirection errors will occur.
- Remote hosting (on S3) of PDF Stamper files is not supported (if you are using the PDF Stamper plugin).