Easy methods to combine DigitalOcean Areas with WordPress


DigitalOcean Areas is an object storage service that can be utilized to retailer massive quantities of knowledge like photos and movies and so on. 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 web site knowledge (photos, video and so on.) in its community storage. Please be aware nonetheless that DigitalOcean Areas isn’t a CDN.

Right here I’ll clarify to you step-by-step methods to combine DigitalOcean areas in WordPress web site after you could have 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 https://wordpress.org/plugins/do-spaces-sync/.
  • Set up the plugin and activate it.
  • Go to Digitalocean.com -> API -> Areas entry keys -> Generate New Key and duplicate 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 “Examine the connection” button to test 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’s going to mechanically sync with DigitalOcean areas (saved into DigitalOcean areas storage). Nonetheless, it won’t sync your current WP media recordsdata. Please additionally be aware to test/uncheck Delete file from cloud storage ... checkbox in accordance with 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, it’s a must to entry your server (or cloud) command line with a person that has root (sudo) permission. After logging in, it’s a must to set up a s3cmd. s3cmd is a well-liked cross-platform command-line instrument 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 Digitalocean.com -> API -> Areas entry keys -> Generate New Key and duplicate the entry and secret keys. Observe, 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.

Consult with person handbook 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 “s3.amazonaws.com” for S3 Endpoint however we have to modify it to the goal DO Areas.

S3 Endpoint [s3.amazonaws.com]: ams3.digitaloceanspaces.com

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

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

DNS-style bucket+hostname:port template for accessing a bucket []: %(bucket)s.ams3.digitaloceanspaces.com


Non-compulsory: Set an Encryption Password

The following immediate is for an optionally available encryption password. In contrast to 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 if you happen to don’t wish 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 following immediate asks for the trail to the GPG program. On Linux, you may settle for the default by urgent ENTER.

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


Join by way of HTTPS

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

DigitalOcean Areas don’t assist unencrypted switch, so you could use HTTPS. Press ENTER to just accept the default.

When utilizing safe HTTPS protocol all communication with Amazon S3

servers is protected against third occasion eavesdropping. This technique is

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

Use HTTPS protocol [Yes]: Sure


Non-compulsory: Set a Proxy Server

Skip this half if you don’t use a proxy server (as we didn’t and cant present a lot information 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’s going to use, adopted by the chance to check them:

New settings:


Secret Key: b8e1ec97b97bff326955375c5example

Default Area: US

S3 Endpoint: ams3.digitaloceanspaces.com

DNS-style bucket+hostname:port template for accessing a bucket: %(bucket)s.ams3.digitaloceanspaces.com

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 provided credentials? [Y/n] Y

When the check completes efficiently, enter Y to save lots of the settings:

Please wait, trying to listing all buckets...

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

Now verifying that encryption works...

Success. Encryption and decryption labored advantageous :-)

Save settings? [y/N] Y

If the check 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 could have 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 accessible on DO website. Nonetheless, we require just one command, instance of which is given beneath. You may make modifications in accordance with your distinctive state of affairs.

sudo s3cmd put /var/www/instance.com/wp-content/uploads/pdf/* s3://photos --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 be aware right here is the --acl-public change which makes the file accessible publicly by way of the DO Areas url akin to instance.ams3.digitaloceanspaces.com/photos/pdf/BWF-62470.pdf

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 space for storing or hold the recordsdata  centrally on DO servers.


A Phrase of Warning!

Whereas including DO Areas Sync plugin in WP is simple sufficient, the plugin isn’t actively maintained and makes modifications to `wp-options` desk. The positioning admin should go to database and take away these modifications manually by looking out the desk entries.

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

Tell us if you happen to require any assist with establishing DigitalOcean Areas with WordPress. Our WordPress specialists are right here that can assist you.