Use the DreamAPI plugin to upload files to the DreamHost DreamObjects file storage zone to save space on your website.
Several years ago, DreamHost came up with a great storage solution known as DreamObjects, and then also released a WordPress plugin
called DreamSpeedCDN to go with it. After a year or so, they discontinued the plugin, which made DreamObjects a simple storage
solution instead of an actual CDN, yet it has all the capabilities of being a CDN.
It is uncertain why DreamHost discontinued this plugin, but the possible reasons are that they did not have enough users
using DreamObjects at the time and they were not really pushing WordPress to their users. Fast forward to 2020, and DreamHost
is hosting nearly 2 million websites, a majority of which are using WordPress. Considering that DreamHost also offers DreamPress,
a managed hosting solution specifically for WordPress websites, it only makes sense for DreamObjects to be utilized as a storage and
DreamHost has no plans to revive their DreamSpeed CDN plugin, and you can find a non-working archived version of it on Github. However,
it does require some coding knowlege to get it working again. In this WordPress forum topic
(DreamSpeed Alternative [https://wordpress.org/support/topic/dreamspeed-cdn-alternative/]),
Ipstenu (Mika Epstein) (@ipstenu) came up with a suggestion for a temporary solution by using
Ilab Media Tools (https://wordpress.org/plugins/ilab-media-tools/), as DreamObjects is S3 compatible and this plugin can be setup
to use DreamObjects. It has been working great for a long time, but there are times where the plugin can be spotty,
and there is no way to force a file upload from the Media Library to DreamObjects with this plugin. This plugin is not specific
to DreamObjects and can be used with a variety of different platforms.
As a result of the buggy plugin, that does not solely focus on DreamObjects, and being a decade customer of DreamHost,
who uses DreamObjects, I decided to build a service to ensure that I could easily link any website to DreamObjects without issues,
including any WordPress website, bridging that gap with an unofficial plugin that can easily connect to DreamObjects and upload files.
This service and plugin were created without any confirmation from DreamHost, as they never did respond back to my support ticket,
which they have now closed. I do firmly believe that there are a lot of DreamHost users that could use a plugin like this,
so that they can fully utilize DreamHost and all of its services.
This plugin requires registration of an account at DreamHost.com and DreamAPI.link.
Note: Any issues that arise with this plugin or the DreamAPI.link service are not associated with DreamHost.com.
DreamAPI (https://dreamapi.link) by NoteToServices (https://notetoservices.com) extends the functionality of DreamObjects to
WordPress, which serves as a file storage service, but with this plugin, allows you to turn it into a CDN.
Through DreamObjects Media, you can select a raw URL or a [dreamimg] shortcode.
The [dreamimg] shortcode has multiple built-in features including image src, alignment, title, alt, link, and target. src is the only requirement.
The [dreamimg] shortcode does not require a closing tag.
The [dreamimg] shortcode may include quotes if you prefer, but quotes are not required.
[dreamimg] shortcode usage:
[dreamimg src=https://DreamAPI.link/DreamAPI-logo.jpg href=https://DreamAPI.link/DreamAPI-logo.jpg link=yes|no align=left|center|right alt=”DreamAPI Logo” title=”DreamAPI website” target=_blank|_self|_top|_parent display=inline|block|contents|flex|grid|inline-block|inline-flex|inline-grid|inline-table|list-item|run-in|table|none|initial|inherit data-src=none|https://DreamAPI.link/DreamAPI-logo.jpg]
[dreamimg] shortcode details:
src = url of image [required]
href = link to image or another url
link = link directly to image or not
align = position of image
alt = alternative text for image
title = used for a title in the link
target = how you wish to open the link of the image
display = how you want your image to be displayed
Copyright (C) 2015-2021 NoteToServices
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
By using this plugin and enabling DreamAPI, you agree that your website will need to make external calls from DreamAPI.link and DreamObjects.
If you do not agree to these terms, please uninstall and delete this plugin.
If you find this plugin useful, please give a review.
DreamHost’s Terms of Service: https://www.dreamhost.com/legal/terms-of-service/
DreamAPI’s Terms of Service: https://DreamAPI.link/?page=terms
DreamAPI is a third-party service of DreamHost and was developed by NoteToServices under permission of DreamHost.
If you have any issues with the DreamAPI plugin, please use the DreamAPI support forums on WordPress, not the DreamHost forums.
You may not redistribute this plugin or alter the name in any way without permission from NoteToServices.
- Install and activate the DreamAPI plugin.
- Navigate to DreamHost.com and sign up for an account.
- Enable the DreamObjects storage area and create a new bucket.
- Navigate to DreamAPI.link and sign up for an account.
- Grab the key from DreamAPI.link and enter it into the settings.
- Set your upload folder and your RETURN URL and click Save Settings.
Q: What does DreamAPI do?
A: DreamAPI makes a connection to DreamObjects and allows you to upload or delete files. In addition, DreamAPI also turns DreamObjects back into a CDN from a
Q: Can I use DreamAPI without a plan?
A: You will need an account at DreamHost and DreamAPI and you will also need to have a bucket within DreamObjects.
Q: Is DreamAPI free?
A: DreamAPI is not free and requires registration of your API key.
Q: Can I change the default DreamAPI link to a custom domain?
A: You will need to set the DNS records of your DreamHost DreamObjects storage bucket. Visit DreamAPI.link for more details.
After you have ensured this process is complete, you can set the return url in the Settings which will display a custom domain link instead of the DreamObjects link.
Q: How much storage space do I have?
A: DreamAPI.link only makes the connection between your WordPress website and DreamObjects, but you can visit DreamHost’s DreamObjects page for more details here:
Q: Will my original files be deleted after they are uploaded?
A: Since you are not uploading directly to the Media Library, no files will ever be stored on your server longer than they need to be.
Q: Will DreamAPI delete files from DreamObjects if I delete them on WordPress?
A: Deleting files from your DreamObjects Media Library on WordPress will delete them from your DreamObjects bucket.
Q: Will my files be deleted if I delete them from DreamObjects?
A: If you delete your files directly from DreamObjects, they will no longer show up in the DreamObjects Media Library on your website.
Q: Can I change the upload folder?
A: You may change the folder to anything you want.
Note: Changing it will not automatically move any files from the old folder to the new folder.
Q: Can I upload the WordPress Media Library?
A: Absolutely! From the DreamAPI settings screen, click on “Export to DreamObjects Media Library” and let DreamAPI go to work.
Depending on the size of your library, it could take a while.
If the script times out, you will need to increase numbers for:
max_execution_time, max_input_time, memory_limit, post_max_size, upload_max_filesize
Q: Can I add a date to the folder structure?
A: This is not currently possible.
Q: I have multiple subfolders but they aren’t showing.
A: DreamAPI does not currently read recursively into directories.
Q: Can I set a pre-existing folder that already has files in it on DreamObjects?
A: Absolutely. Just set the folder and DreamAPI will load anything within the root of that folder.
Q: Will DreamAPI work with Gutenberg?
A: DreamAPI will work with Gutenberg, but not directly. In other words, you will simply insert a new block, add media, and insert from URL. Or you can paste the img shortcode into the post or page directly.
Q: How do I make my images load faster?
A: DreamObjects automatically caches files worldwide and if they are downloaded once, they tend to be cached forever.
Q: I uploaded a file to DreamObjects, deleted it, and re-uploaded a file with the same filename, but still seeing the old file.
A: Aside from storage, DreamObjects primary job is to cache things forever and make them fast. There is no way
to clear the cache on DreamObjects. You will need to rename the file and re-upload it to see the new file.
Q: Does my website need to be secure?
A: It is highly recommended that you use a secure website and force SSL on your DreamObjects DNS. Trying to display secure images from an unsecure website or vice versa may result in odd browser behavior from the browser. However, having a non-secure website will still display images.
Q: My images are not showing up for my custom domain.
A: You should have covered at least two steps in order to link to your custom domain.
You will need to go to wherever you are hosting your domain and ensure the proper DNS CNAME records are set.
Changes may take up to 10 minutes or more to go in effect.
For more information: https://help.dreamhost.com/hc/en-us/articles/215253408-How-to-create-a-DNS-alias-for-DreamObjects-buckets
Q: My images are not appearing in DreamObjects Media.
A: Ensure the proper folder is set and there are actually files within the folder.
Q: Does DreamAPI alter my images?
A: Unlike WordPress which may scale down large images, DreamAPI does not alter your images in any way and will upload them directly to DreamObjects.
Note: Upon importing your DreamObjects Media Library to your WordPress Media Library, WordPress native functions may scale your images.
Q: Why does it take long to upload or delete files?
A: It depends on your server connection to DreamAPI, but it may take several minutes to upload or delete multiple files. It is advisable not to upload more than 20 files at a time.
Q: How do I use a secure connection with my own domain for my files?
A: This is where the CDN aspect from DreamSpeedCDN kicks in.
Follow these steps:
1. Create a bucket called cdn.mysite.com.
2. You will need to add your website to Cloudflare.
3. From Cloudflare, update the CNAME record to cdn.mysite.com.objects-us-east-1.dream.io.
4. From the menu, choose SSL/TLS, and select FULL.
Once the CNAME and DNS are resolved, then you can serve your files from cdn.mysite.com.
Your bucket should be: cdn.mysite.com
Your return URL should be: cdn.mysite.com
All of your images will be returned as: https://cdn.mysite.com/uploads/file1.jpg
Q: Does DreamAPI use any tracking?
We record every API call to ensure quality and debugging purposes in case something goes wrong, including the DreamAPI key, the action, the URL submitted, and the IP address of the server that the request came from.
DreamAPI does not track any additional information about your website or visitors.
Q: Can you explain what everything is on the Settings page?
DreamAPI key is the API key you will need to get from DreamAPI.link which allows the plugin to work. This key creates a connection between DreamAPI, DreamObjects, and your website.
Return URL is the custom domain you set. By default, it will look something like this: bucket.objects-us-east-1.dream.io
DreamObjects Folder is the folder on where your files will be uploaded.
Save Bandwidth will toggle whether thumbnail images are loaded in Bthe DremaObjects Media Library or instead only clickable links are served thus saving bandwidth.
Update DreamAPI Settings updates the settings on the current page.
Import To Media Library Media will download all files from DreamObjects Media Library into your local library.
Export to DreamObjects Media Library will upload everything from the WordPress Media library to DreamObjects Media Library.
Q: Are you DreamHost?
A: We are a third-party company known as NoteToServices (https://notetoservices.com) and developed this plugin to help make better use of DreamObjects storage.
Basic functionality to connect WordPress and DreamHost via DreamAPI.