---
title: "Amazon S3 Storage settings"
url: "https://kestrelwp.com/docs/amazon-s3-storage-settings/"
description: "Every Amazon S3 Storage setting, in the order it appears on screen."
published: "2026-10-06T20:23:38+00:00"
modified: "2026-10-15T14:56:51+00:00"
---

Every Amazon S3 Storage setting lives on one tab, **WooCommerce » Settings » S3 storage**, which the **WooCommerce » S3 storage** menu item also opens. This page defines each setting in the order it appears. For the steps to set up a store, see [Get started with Amazon S3 Storage](/docs/get-started-with-amazon-s3-storage/).

![Amazon S3 Storage: overview](https://kestrelwp.com/wp-content/uploads/2026/10/amazon-s3-s3-10-docs-01.png)![Amazon S3 Storage: overview](https://kestrelwp.com/wp-content/uploads/2026/10/amazon-s3-s3-10-docs-02.png)![Amazon S3 Storage: overview](https://kestrelwp.com/wp-content/uploads/2026/10/amazon-s3-s3-10-docs-03.png)![Amazon S3 Storage: overview](https://kestrelwp.com/wp-content/uploads/2026/10/amazon-s3-s3-10-docs-04.png)The tab shows the **Connection** and **Debug** sections at first. **Automatic offloading**, **Shortcode offloading** and **Product downloads** appear once the plugin connects to your provider. Some settings also depend on the provider you pick, as noted under each one. Opening the tab re-checks the connection and refreshes the bucket lists.

## Connection

### Cloud service provider

Where your files are stored: **Amazon S3** (the default), **Cloudflare R2**, or **User defined (experimental)** for Backblaze B2, Wasabi and DigitalOcean Spaces. The experimental option hides **Credentials location**, the key fields and **Endpoint**, because a code snippet supplies them; see [Connect other S3-compatible providers](/docs/s3-compatible-providers/).

### Credentials location

Where your access keys are kept:

- **Save credentials to database (encrypted)**, the default: you paste the keys below, and the plugin stores them encrypted. This needs the PHP OpenSSL extension, and the encryption is tied to your site’s WordPress security keys (salts), so changing those means pasting the keys again.
- **Manually add constants to your WordPress configuration file (unencrypted)**: the key fields disappear, and the plugin reads the keys from `wp-config.php`. The text under the setting names the two constants for the provider you chose: `AMAZON_S3_ACCESS_KEY_ID` and `AMAZON_S3_ACCESS_KEY_SECRET` for Amazon S3, or `CLOUDFLARE_R2_ACCESS_KEY_ID` and `CLOUDFLARE_R2_SECRET_ACCESS_KEY` for Cloudflare R2.

### Access key ID

The access key ID from your provider: an IAM user’s access key for Amazon S3, or an R2 API token’s Access Key ID for Cloudflare R2. Shown when **Credentials location** is the database option. A saved key ID shows as plain text, so you can check which key is in use; it’s still stored encrypted, and **Secret access key** stays hidden.

### Secret access key

The secret that belongs to the access key ID. Shown with **Access key ID**.

### Endpoint

Only shown for **Cloudflare R2**: your account’s S3 API address, such as `https://<account-id>.r2.cloudflarestorage.com`, without a bucket name. If you paste a URL that includes the bucket, the plugin keeps only the base address when you save. See [Connect Cloudflare R2](/docs/connect-cloudflare-r2/).

## Automatic offloading

Files offloaded here are served to customers with access to the download, under WooCommerce’s usual limits. If the plugin can’t reach your provider, or a file isn’t in the bucket, customers get the local copy.

### Enable

Uploads each product’s downloadable files to your bucket in the background when you save the product in the product editor. On by default for new installs. Turning it off hides **S3 bucket**, and downloads come from your server again. See [How automatic offloading works](/docs/get-started-with-amazon-s3-storage/#how-automatic-offloading-works).

### S3 bucket

The bucket automatic offloading uploads to. The list shows the buckets your access keys can see; reload the page if you just created one. Choose a bucket and save, even if it already shows, so the choice is stored.

With Amazon S3, the list starts with **Create a new bucket…**. Choosing it shows two more fields: the new bucket’s name, and its region. When you save, the plugin creates the bucket and selects it. Bucket names must be unique across all of AWS and 3 to 63 characters long; use lowercase letters, numbers, hyphens and periods (periods don’t work with Transfer Acceleration). Creating a bucket needs the `s3:CreateBucket` permission (see [Set up Amazon S3 for your store](/docs/create-an-amazon-s3-bucket/)). With Cloudflare R2 and the experimental providers, create buckets with your provider first.

## Shortcode offloading

These two settings fill in what an `[amazon_s3]` shortcode leaves out. See [Link files with the S3 shortcode](/docs/amazon-s3-storage-shortcode/).

### Default region

The AWS region shortcodes use when they don’t name one and no **Default bucket** is set. It also supplies the region list for **Create a new bucket…**. Default **US East (N. Virginia) – us-east-1**. Hidden for Cloudflare R2, which doesn’t use regions.

The list has these regions. Automatic offloading can’t use a bucket in a region that isn’t listed.

- **North America:** US East (N. Virginia) `us-east-1`, US East (Ohio) `us-east-2`, US West (N. California) `us-west-1`, US West (Oregon) `us-west-2`, Canada (Central) `ca-central-1`, Canada West (Calgary) `ca-west-1`, Mexico (Central) `mx-central-1`
- **South America:** South America (São Paulo) `sa-east-1`
- **Europe:** Ireland `eu-west-1`, London `eu-west-2`, Paris `eu-west-3`, Frankfurt `eu-central-1`, Stockholm `eu-north-1`, Milan `eu-south-1`, Spain `eu-south-2`, Zurich `eu-central-2`
- **Middle East:** Bahrain `me-south-1`, UAE `me-central-1`, Israel (Tel Aviv) `il-central-1`
- **Africa:** Cape Town `af-south-1`
- **Asia Pacific:** Mumbai `ap-south-1`, Hyderabad `ap-south-2`, Singapore `ap-southeast-1`, Sydney `ap-southeast-2`, Jakarta `ap-southeast-3`, Melbourne `ap-southeast-4`, Malaysia `ap-southeast-5`, Thailand `ap-southeast-7`, Tokyo `ap-northeast-1`, Seoul `ap-northeast-2`, Osaka `ap-northeast-3`, Hong Kong `ap-east-1`, Taipei `ap-east-2`
- **China:** Beijing `cn-north-1`, Ningxia `cn-northwest-1`
- **AWS GovCloud (US):** US-West `us-gov-west-1`, US-East `us-gov-east-1`

### Default bucket

The bucket shortcodes use when they don’t name one, and the placeholder in the shortcode generator’s **Bucket name** field. It can differ from **S3 bucket**, so offloaded files and shortcode files can live in different buckets. When set, shortcodes without a `region` use this bucket’s region.

## Product downloads

### Transfer Acceleration

Only shown for **Amazon S3**. Routes uploads and downloads through Amazon’s edge locations. Off by default. Enable Transfer Acceleration on the bucket in the AWS console too, or uploads and downloads fail. See [Use Transfer Acceleration](/docs/create-an-amazon-s3-bucket/#use-transfer-acceleration).

### Force redirect method

Sends customers straight to the signed link for files served from your bucket (WooCommerce’s **Redirect only** download method), so the download doesn’t pass through your server. It works the same for Amazon S3, Cloudflare R2 and the experimental providers. On by default, and recommended. It doesn’t change how files on your server download: those keep WooCommerce’s **File download method** under **WooCommerce » Settings » Products » Downloadable products**.

Redirect only is safe here: the customer sees the signed link, but it expires after the **URL validity period**.

### Download behavior

How browsers treat downloaded files:

- **No override (S3 default)**, the default: the browser decides, using any Content-Disposition metadata stored on the file. Browsers may play audio or open PDFs instead of saving them.
- **Force download**: browsers save every file, named after its object name.

To set the downloaded file name yourself, add Content-Disposition metadata (for example `attachment; filename="My Album.zip"`) to the file in your provider’s console and keep **No override (S3 default)**. A shortcode’s `content_disposition` attribute overrides this setting for one file.

### URL validity period

How many minutes a signed download link works, from 1 to 10080 (seven days). Default 15; leaving it empty also uses 15. The plugin reuses a link until it expires, so a customer who clicks again within the period gets the same link. Shorter periods make shared links useless sooner; WooCommerce’s own download limits and expiry still apply on top.

## Debug

### Debug mode

Logs each connection, upload and download step under **WooCommerce » Status » Logs**, for troubleshooting. Off by default. While it’s on, every admin page shows "Debug mode is enabled. Please remember to disable this feature to prevent excessive amounts of logging data." Turn it off when you’re done.

## Keep learning

- [Get started with Amazon S3 Storage](/docs/get-started-with-amazon-s3-storage/)
- [Set up Amazon S3 for your store](/docs/create-an-amazon-s3-bucket/)
- [Connect Cloudflare R2](/docs/connect-cloudflare-r2/)
- [Troubleshoot Amazon S3 Storage](/docs/troubleshoot-amazon-s3-storage/)
