Chore: Replace `AWS S3` with `Backblaze B2`
- Dominant language
- Elixir
- Stars
- 108
- Forks
- 20
- Avg merge
- 21h 46m
- Merged PRs (30d)
- 4
Description
As noted in https://github.com/dwyl/imgup/issues/91 and previously in https://github.com/dwyl/technology-stack/issues/63 `AWS S3`,
`while` reasonably straightforward to use, is _significantly_ more expensive than `Backblaze B2`:
https://www.backblaze.com/b2/cloud-storage-pricing.html
For an image service where we expect the `downloads` to exceed `storage` `GBs` by `10:1`
meaning a 1mb image will be viewed 10 times, the **_most_ important cost** is the **_downloads_**.
We already use `Cloudflare` for our `DNS` and `DDoS protection` so we are familiar with the interface.
But we haven't _yet_ used their `CDN` service ... it appears to be _included_ with no extra monthly bandwidth cost ...
https://www.cloudflare.com/en-gb/plans/
I cannot _understand_ how there is - or at least _appears_ to be - no _incremental_ cost
for bandwidth/downloads through `Cloudflare CDN`:
https://www.cdnplanet.com/compare/cloudfront/cloudflare/
> **_Obviously_ none of this matters if nobody is _using_ the upload service** ... 🦗🦗🦗
But if we _deduce_ from the popularity of image sharing services/apps that we're building a product `people` _want_, 📷 📱 🖼️ ❤️
then keeping a close eye on costs is the only way ensure we don't burn through all our cash 💸
`before` reaching product-market-fit. ⏳
# Todo
+ [ ] Investigate the `Backblaze B2` `REST API`:
+ [ ] https://help.backblaze.com/hc/en-us/articles/360047425453-Getting-Started-with-the-S3-Compatible-API
+ [ ] https://www.backblaze.com/docs/cloud-storage-call-the-native-api
+ [ ] Create a **`New` Repo** to capture the **`SPIKE`** (tutorial) of uploading to `B2`:
https://github.com/dwyl/backblaze-b2-tutorial if that goes well we can proceed further. 🤞
+ [ ] Document _everything_ you learn along the way uploading to `B2` including:
+ [ ] Sign-up to a "free" [EU-based] account
+ [ ] Read the `B2 API` Docs and figure out how to upload using `HTTPoison`
+ [ ] Possible starting point: https://github.com/yoavlt/B2 (sadly, not maintained, but some useful looking `code`) 💭
+ [ ] If the `B2` `API` is reasonably straightforward we can create a `package` to abstract everything and _use_ it in `imgup`.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.