Amazon S3 Storage

The Amazon S3 Storage extension for WooCommerce enables you to serve digital products through your Amazon AWS S3 service.

Using Amazon S3 storage to serve your digital products give you room for better scalability, offers more reliability, specially when serving big files, and greater download speeds for your customers.

To use the Amazon S3 Storage plugin for WooCommerce, you need a Amazon AWS account.

Installation ↑ Back to top

  1. Upload the ‘woocommerce-amazon-s3-storage’ folder to your ‘plugins’ directory.
  2. Activate ‘WooCommerce Amazon S3 Storage’ through the ‘Plugins’ menu in your WordPress admin area.
  3. Configure the plugin settings.

Configuration ↑ Back to top

  1. Go to aws.amazon.com and sign up for an account there
  2. Go to console.aws.amazon.com. Select “Your Name” at the top right corner and then My Security Credentials.
  3. Create New Access Key
  4. Copy the Access Key ID and Secret Access Key and keep them, you will be using them below.
  5. Go to the WooCommerce > Amazon S3 Storage menu in your WordPress admin area.
  6. Paste the  Access Key ID and  Secret Access Key into the fields.

If you use the “Redirect only” method for downloadable products, please enter a value in the “URL valid Period” field if you want to keep your files hidden to other people.

You can find out which method you are using at WooCommerce > Settings > Products > Downloadable products. We do not recommend using the redirect method, but if you do, this is a necessary setting.

url-valid-period

The URL valid period is used each time a customer clicks the WooCommerce download link, the plugin intercepts the download process and generates a unique Amazon URL, that URL is only valid for the period specified in the URL Valid Period setting. This period has to be defined in minutes. This whole process is hidden to your customers.

Uploading Files to Amazon Web Services ↑ Back to top

To be able to use Amazon S3 to serve your files, you will need to upload your files to the Amazon S3 service.

  1. Go to console.aws.amazon.com
  2. Select S3 under All services > Storage
  3. If it’s your first time using Amazon S3 you will need to create a bucket. A bucket is a unique identifier and can be set to a specific region, this allows for better latencies, lessen costs and even address regulatory requirements.
  4. To create a bucket, click the “+ Create Bucket” button at the top left under the Buckets heading. Give your bucket a name and select the region you would the bucket to be hosted in. 
  5. Select the name of your newly created bucket.
  6. To upload files, simply click on your bucket on the left-hand side and then click the “Upload” button and follow the procedure. 
  7. You will be asked to “Set permissions”, the recommended default will be to have the permissions set to private. 
  8. To change files’ privacy settings, click on the file. Then select “Permissions” at the bottom right. From there you can add/remove permissions. 
  9. Please note that to keep you files private you will need to remove any Everybody permissions and have an Authenticated permission set up with at minimum “Read” permission checked.

Configure Digital Products ↑ Back to top

You must use the [amazon_s3] shortcode in the File URL box for this extension to work.

  1. Go to Products > All Products in your WordPress Dashboard.
  2. Follow the instructions to create a Downloadable product.
  3. Enter your amazon_s3 shortcodes in the “File URL” field box.
  4. You can enter anything you’d like in the “Name” field box.
  5. To offer multiple downloads, select Add File and repeat steps 3 and 4.
WooCommerce
Adding files to WC 2.1 using the amazon_s3 shortcode

Amazon S3 Shortcode ↑ Back to top

For unique download URLs to files ↑ Back to top

You can generate unique download URLs anywhere on your WordPress site using the shortcode to offer unique download URLs to files on your Amazon S3 service.

The shortcode is defined as:

[amazon_s3 bucket=MyBucketName object=MyFileName.ext]

You need to specify the two arguments (bucket and object) for the shortcode to work, where bucket is the bucket name and object is the filename including directory if it is located in a sub directory in the bucket.

Note: We recommend you to avoid points, spaces, dashes etc. in bucket names.

To add a download link to a page or posts you can add the following for example

<a href="[amazon_s3 bucket=MyBucket object=MyFile.jpg]">Download File From Amazon</a>

For different region parameters ↑ Back to top

The shortcode also supports the parameter region, which is needed if you use different regions for the buckets you have.

It is defined as:

[amazon_s3 bucket=MyBucketName object=MyFileName.ext region=eu-central-1]

You need to specify the three arguments (bucket, object and region) for the shortcode to work, where bucket is the bucket name and object is the filename including directory if it is located in a sub directory in the bucket, and region is defined according to the Amazon API.

A list of different regions can be found at: Amazon API Gateway Regions.

Files Download With Funny Names ↑ Back to top

When you have your store set to make use of ‘Force Download’ and make use of the private URL functionality of the Amazon S3 plugin your files will be the filename of the URL that gets generated, to get around this you need to set your store to make use of ‘Redirect’ for downloads and optionally just add some meta data to the file on Amazon S3 to make it a specific filename than the one you uploaded it as. By default, your file will be downloaded with the name you uploaded it as.

To change the meta data, go to your AWS console, locate the file and then click on it. Select “Properties”. In the next tab, choose Meta Data > + Add Metadata, select “Content-Disposition” from the drop-down and in the value drop-down enter the following: ‘attachment; filename=filename.gif‘ be sure to change filename.gif to the filename the file must be saved as.

Audio files playing and not downloading ↑ Back to top

This can be resolved in the same way as the Downloads with funny names issue.

1/ Login to the S3 console, select an object

2/ Select the Properties button (if the properties window at the bottom isn’t already visible).

3/ Select the Metadata tab.

4/ Select the Add more Metadata button.

5/ Select: Content-Disposition in the drop down.

6/ Enter the Value: attachment.

7/ Save.

Downloads not completing ↑ Back to top

If you have issues with downloads being slow or it not completing for your customers then be sure to change the WooCommerce Download method to Redirect. You can change this setting under WooCommerce > Settings > Products > Downloadable Products.

Also, make sure that there is no dash or underscore in your bucket and file names

FAQ ↑ Back to top

What happens if I change the bucket’s name? ↑ Back to top

If you need to change the bucket’s name, which is usually done if downloads do not complete, links to downloadable files within emails will no longer work, while links from the My Account page are updated.

Questions & Support ↑ Back to top

Have a question before you buy? Please fill out this pre-sales form.

Already purchased and need some assistance? Get in touch with a Happiness Engineer via the Help Desk.

WooCommerce - the most customizable eCommerce platform for building your online business.

Back to the top