# S3 competitor integration

**URL:** https://meta.discourse.org/t/s3-competitor-integration/20883
**Category:** Feature
**Created:** [October 7, 2014, 1:37pm UTC](https://meta.discourse.org/t/s3-competitor-integration/20883 "2014-10-07T13:37:19Z")
**Posts on this page:** 4
**Page:** 1

<div class="post-metadata">

### Author: ![Frank](https://avatars.discourse-cdn.com/v4/letter/f/3d9bf3/32.png) [@Frank](https://meta.discourse.org/u/Frank)
#### Post date: [October 7, 2014, 1:37pm UTC](https://meta.discourse.org/t/s3-competitor-integration/20883/1 "2014-10-07T13:37:19Z")

</div>

This is a continuation of a discussion to find an S3 competitor.

The main reason is that S3 has bizarre pricing structures and IMO for a large Discourse instance including those based on photo and video it could hit them for a lot of $$$$

**Proposal:**

Feasibility investigation on Rackspace/Openstack or Google Cloud and the extension/continuation of @zogstrip 's normalization work on image bucket and backup storage. So far the pricing seems very straight forward for Google Cloud hosting. But can it be done? or is it a high threshold pain point that triggers fight or flight instincts? I guess I will judge that by how fast this post gets deleted or closed and killed with fire 😄

> **[Storage pricing](https://cloud.google.com/storage/pricing)**
>
> Storage pricing.

**Disclaimer:**

I could do a PR but I am dynamic/procedural candy coder, anything I provide via a PR will be murdered instantly which would wreck my fragile psychology. So someone with thicker skin would need to do this.

---

<div class="post-metadata">

### Author: ![zogstrip](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/zogstrip/32/512781_2.png) [@zogstrip](https://meta.discourse.org/u/zogstrip)
#### Post date: [October 7, 2014, 1:40pm UTC](https://meta.discourse.org/t/s3-competitor-integration/20883/2 "2014-10-07T13:40:54Z")

</div>

Adding a new `file storage` shouldn’t be _that_ hard since they only need to implement a [basic interface](https://github.com/discourse/discourse/blob/master/lib/file_store/base_store.rb). The hardest part will be adding proper test coverage. Testing I/O truly is a PITA ☹

---

<div class="post-metadata">

### Author: ![Frank](https://avatars.discourse-cdn.com/v4/letter/f/3d9bf3/32.png) [@Frank](https://meta.discourse.org/u/Frank)
#### Post date: [October 7, 2014, 6:46pm UTC](https://meta.discourse.org/t/s3-competitor-integration/20883/3 "2014-10-07T18:46:22Z")

</div>

I have seem some of your testing ‘stuff’ (evil trout’s actually). And it looks like a HUUUUUUUUGGGE time sink (ice pick to the eyeballs).

but…I believe with the regression that occurred in the past, it’s a necessary evil, right?

💫

Hmmm…that basic interface looks really simple and clean. I think it would need an additional function of

def bucketType (S3/Google) (or something that carries some routing logic through to the other functions)

Interesting…

---

<div class="post-metadata">

### Author: ![chapoi](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/chapoi/32/537252_2.png) [@chapoi](https://meta.discourse.org/u/chapoi)
#### Post date: [December 4, 2025, 11:32am UTC](https://meta.discourse.org/t/s3-competitor-integration/20883/4 "2025-12-04T11:32:27Z")

</div>


