The best way to combine DigitalOcean Areas with WordPress


DigitalOcean Areas is an object storage service that can be utilized to retailer massive quantities of knowledge like photographs and movies and so forth. The DigitalOcean Areas is like Amazon S3 storage.

To hurry up WordPress and deal with static file supply, we are able to setup a DigitalOcean Spaces account in order that we could host WordPress website information (photographs, video and so forth.) in its community storage. Please word nonetheless that DigitalOcean Areas is just not a CDN.

Right here I’ll clarify to you step-by-step how one can combine DigitalOcean areas in WordPress website after you’ve created the DO Areas account.


Set up DigitalOcean areas plugin

  • To combine DO Areas with WP, we’ll be working with a DO Areas Sync plugin
  • Obtain DO Areas Sync plugin from
  • Set up the plugin and activate it.
  • Go to -> API -> Areas entry keys -> Generate New Key and replica the entry and secret keys.
  • Go to WP Settings -> DigitalOcean areas sync menu and fill the fields along with your info.
  • Enter container title and Areas endpoint title out of your DO Areas settings.
  • Click on “Verify the connection” button to verify your setup.

do spaces settings

  • After you bought a message “Connection is efficiently established. Save the settings.”, fill the beneath “FILE & PATH SETTINGS”.

With the above settings, when a WP uploads media then it would mechanically sync with DigitalOcean areas (saved into DigitalOcean areas storage). Nonetheless, it is not going to sync your current WP media recordsdata. Please additionally word to verify/uncheck Delete file from cloud storage ... checkbox in response to want.

Sync current media with DigitalOcean Areas by performing the next steps.


Setting Up s3cmd 2.x with DigitalOcean Areas

To carry out this step, you need to entry your server (or cloud) command line with a consumer that has root (sudo) permission. After logging in, you need to set up a s3cmd. s3cmd is a well-liked cross-platform command-line device for managing S3 and S3-compatible object shops. For our shoppers, we used a DigitalOcean droplet utilizing Ubuntu OS.

Initialize the Configuration File

Run the next command on the server’s command line.

sudo s3cmd –configure

Enter Entry Keys

Go to -> API -> Areas entry keys -> Generate New Key and replica the entry and secret keys. Be aware, use the identical keys that you just generated within the step of DO Areas Sync plugin.

Enter your keys, then settle for US for the Default Area as a result of the area info isn’t related to DigitalOcean.

Enter new values or settle for defaults in brackets with Enter.

Seek advice from consumer guide for detailed description of all choices.

Entry key and Secret key are your identifiers for Amazon S3. Depart them empty for utilizing the env variables.


Secret Key []: exampleb8e1ec97b97bff326955375c5

Default Area [US]:


Enter the DigitalOcean Endpoint   

Amazon customers use “” for S3 Endpoint however we have to modify it to the goal DO Areas.

S3 Endpoint []:

Then enterURL template to entry your bucket, which is the S3 equal of a Area. You should utilize the variable %(bucket)s to face in for the title of your house. Enter the next template format precisely as written: %(bucket) Once more, you’ll change this in case your Area is in a special area.

Use “%(bucket)” to the goal Amazon S3. “%(bucket)s” and “%(location)s” vars can be utilized if the goal S3 system helps dns based mostly buckets.

DNS-style bucket+hostname:port template for accessing a bucket []: %(bucket)


Optionally available: Set an Encryption Password

The subsequent immediate is for an elective encryption password. Not like HTTPS, which protects recordsdata solely whereas in transit, GPG encryption prevents others from studying recordsdata each in transit and whereas they’re saved on DigitalOcean. Simply press enter in case you don’t need to set a password.

Encryption password is used to guard your recordsdata from studying by unauthorized individuals whereas in switch to S3

Encryption password:

The subsequent immediate asks for the trail to the GPG program. On Linux, you’ll be able to settle for the default by urgent ENTER.

Path to GPG program [/usr/bin/gpg]:


Join through HTTPS

The subsequent immediate asks to make use of the HTTPS protocol. HTTPS protects information from being learn whereas it’s in transit.

DigitalOcean Areas don’t help unencrypted switch, so you will need to use HTTPS. Press ENTER to simply accept the default.

When utilizing safe HTTPS protocol all communication with Amazon S3

servers is protected against third get together eavesdropping. This methodology is

slower than plain HTTP, and might solely be proxied with Python 2.7 or newer

Use HTTPS protocol [Yes]: Sure


Optionally available: Set a Proxy Server

Skip this half if you don’t use a proxy server (as we didn’t and cant present a lot data on this step). You may go to DigitalOcean web site for documentation.


Affirm, Take a look at, and Save Settings

After the immediate for the HTTP Proxy server title, the configuration script presents a abstract of the values it would use, adopted by the chance to check them:

New settings:


Secret Key: b8e1ec97b97bff326955375c5example

Default Area: US

S3 Endpoint:

DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)

Encryption password: secure_password Path to GPG program: /usr/bin/gpg

Use HTTPS protocol: True

HTTP Proxy server title:

HTTP Proxy server port: 0

Take a look at entry with equipped credentials? [Y/n] Y

When the take a look at completes efficiently, enter Y to save lots of the settings:

Please wait, making an attempt to listing all buckets...

Success. Your entry key and secret key labored positive :-)

Now verifying that encryption works...

Success. Encryption and decryption labored positive :-)

Save settings? [y/N] Y

If the take a look at fails otherwise you select N you’ll have the chance to retry the configuration. When you save the configuration, you’ll obtain affirmation of its location:

Configuration saved to '/residence/ubuntu/ams3'


Utilizing S3cmd 2.x to sync WP recordsdata to DO Areas

Until now, you’ve setup and configured the s3cmd plugin required to manually sync all recordsdata from WP with DO Areas. Now, we should run the s3cmd to do carry out the sync.

Though an inventory of instructions and a particulars discussions is out there on DO website. Nonetheless, we require just one command, instance of which is given beneath. You can also make adjustments in response to your distinctive scenario.

sudo s3cmd put /var/www/* s3://photographs --acl-public --add-header=Cache-Management:max-age=86400 --recursive

The command when run will take a while however will present you recursive listing of recordsdata being copied. Of particular word right here is the --acl-public swap which makes the file accessible publicly by way of the DO Areas url equivalent to

You may then replace the paths in your pages, posts or plugins to mirror the file location. You may even delete recordsdata from native WP storage to save lots of cupboard space or preserve the recordsdata  centrally on DO servers.


A Phrase of Warning!

Whereas including DO Areas Sync plugin in WP is simple sufficient, the plugin is just not actively maintained and makes adjustments to `wp-options` desk. The location admin should go to database and take away these adjustments manually by looking the desk entries.

[hr height=”30″ style=”default” line=”default” themecolor=”1″]

Tell us in case you require any assist with establishing DigitalOcean Areas with WordPress. Our WordPress specialists are right here that will help you.