S3 compatible-storage deployment

@john-shaffer how do you feel about S3-compatible storage being supported within the current S3 add-on, vs offering a Generic S3 add-on or roll out specifics per deployment add-on?

generic support can cover a lot of possible deployment options, including:

  • Minio
  • Digital Ocean
  • Rackspace
  • Linode
  • Google Cloud

Pros:

  • changing endpoint may be enough for most storage options to work
  • code re-use

Cons:

  • scared of a lot of edge cases complicating things
  • if moving to a wizard based UI in add-on to do things like choose/create bucket, set policy, static website properties, each differ
  • some hosts likely not keeping up with AWS SDK latest versions or supporting common commands

Having per-provider add-ons gives a bit more focus for each one, which I prefer.

My main concern would be with testing. It would be really easy for me to add something that works great on my S3-based sites but causes problems for some S3-compatible provider. Particularly as “S3-compatible” services “intended for serving web pages” can lack very basic features.

I’d favor keeping the S3 addon separate to keep its code simple, and having separate S3-compatible addon(s), possibly with some providers grouped depending on how compatible they are. It might be best to have something like a Generic S3 addon with classes for different providers that can provide flags for supported features and functions for any special behavior the provider needs.

1 Like