About This File
Non-Amazon S3 storage services do work with IPS 4.1x. Add your endpoint, key, secret, and sub-directory and custom url if needed, assign to some file category such as attachments or Gallery images and off you go!
However, these Non-Amazon S3 services are NOT officially supported by IPS - that's because some of the internal methods have not been altered to handle them. These methods are hard-coded for Amazon S3 exclusively.
If you are merely displaying images and the like on the front end, none of this is a problem. It becomes a problem if your end-users are going to download these files - that is when you hit the exclusively Amazon S3 code and the downloads will fail. For example, if you assign non-Amazon S3 storage to save IPS Downloads files, those files will not be downloadable. When the system attempts to make the download URL, it crafts that URL as if you were using Amazon S3, not some other S3-Compatible storage service.
The two major areas that this will impact are IPS Downloads files and Attachments (this is what the file storage is called in the Files list in the ACP - it encompasses all attachments such as those you would have anywhere the full editor is used and there is an attachment dropzone.)
This plugin intercepts the the URL creation method called on Amazon S3 file storage objects, checks to see if it is an actual Amazon S3 request, and then just passes it on through as usual. If it is NOT an Amazon S3 request, it must be an S3 compatible method, in which case I provide a rudimentary URL to patch this up. It isn't anything fancy: just enough headers to push out the actual file name and trigger your browser to download it. If the attachment or file in question is an image your browser might just pop it up in a new tab, in which case just right click and download it there. This has been tested with the usual modern browsers (minus Safari), and various file-types. All testing was successful.
Free, support through the IPS Marketplace topic for now. Free also means lay off the instantaneous demands for support. I use this too so it's in my interest to keep this going. Support, and this plugin's existence, continues until IPS gets around to actually officially supporting Non-Amazon S3 storage.
The only item in the entire IPS Suite that marks files as private is IPS Downloads. This plugin will flag them as public. This means a few things:
1) If you are monetizing or otherwise require fully controlled access to IPS Downloads files this is probably not the plugin for you. You will need to wait for complete 3rd Party S3 support, or at least specific mods to support other S3 providers. It really is just some hump work on getting the signatures correct (and it might be a V2 vs. V4 dance with varying providers as well - IPS just has a hard-coded-to-Amazon V4 method). Give it time, it will happen.
2) If you are using this plugin on an already existing bucket with Downloads files, those files will need to be flagged as public-read for them to download correctly. Again, this plugin is just getting rid of the signatures to allow public files to download correctly from 3rd-party S3 providers.
3) IPS Downloads users on IPS Community in the Cloud may need to wait forever and ever before the plugin will work correctly (forever and ever being defined as more than handful of minutes) as CIC caching takes some time to get things working. You *will* need to be infinitely patient. Like, install and then go drink something for awhile, read a book, etc. Then test. Don't yell at me saying this is broken., It isn't. Tested and verified on both own-hosting and CIC.
Enjoy, good luck, etc...
KNOWN COMPATIBLE SERVICES
Delimiter obj.space (Not recommended - see Summer 2018 topics on various review sites regarding the company)
Digital Oceans Spaces
If a service REQUIRES a signature for download URLs, even for public-read files, this plugin will not help you. The following services are known to require signatures for all download URLs.
What's New in Version 3 See changelog
- Minor change to absolutely force downloads instead of browser loading.