Thanks a lot!
Without the CloudFront Domain Name, images will be served directly from S3, otherwise your CloudFront domain will be used. All the particulars must be setup via the AWS console. If anyone is interested I can write a short howto on getting it done. Otherwise setup for AWS S3 support should be pretty straight forward.
Thus far we have support for Cloudinary, ImageKit, and AWS S3.
@FreeWorLD Sure. Email me and let me know more about your requirements. Including what site do you plan to use the plugin for, typical traffic, etc.
@667 does this plugin work?
Vultr just added object storage too. Don't know if it uses S3 API or not.
Backblaze B2 would be a great option, as well. But uses its own API rather than copying S3's.
@satishbh Yes it does.
@satishbh I have added the s3 bucket name, API key and Secret, but It crashes stating that the location is null. Is there any config file that we need to update?
2019-08-29T16:52:17.873Z [4567/56699] - error: uncaughtException: Cannot read property 'Location' of undefined
TypeError: Cannot read property 'Location' of undefined
at ManagedUpload.callback (/Usersemail@example.com/NodeBB/node_modules/nodebb-plugin-cloudstorage/lib/controllers.js:222:103)
at Response.finishSinglePart (/Usersfirstname.lastname@example.org/NodeBB/node_modules/aws-sdk/lib/s3/managed_upload.js:674:28)
at Request.<anonymous> (/Usersemail@example.com/NodeBB/node_modules/aws-sdk/lib/request.js:364:18)
at Request.callListeners (/Usersfirstname.lastname@example.org/NodeBB/node_modules/aws-sdk/lib/sequential_executor.js:106:20)
at Request.emit (/Usersemail@example.com/NodeBB/node_modules/aws-sdk/lib/sequential_executor.js:78:10)
@satishbh Fix pushed.
NPM - 1.0.15 • Public • Published 6 minutes ago
This looks like an awesome plugin, good work! Similar to our CDN plugin (which I don't think is public... )
@julian Thanks for the positive words. I'm glad it has been useful.
@satishbh Also to add more context to this for others who come across it (using the older version):
The root cause of the error was having an S3 bucket that wasn't public. The plugin then handled the thrown error by the S3 API incorrectly, which was fixed in:
I found the reason that my bucket wasn't public.