Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🌱πŸ₯”βœ¨ Utility: AWS::S3 #1430

Open
1 task done
Tracked by #1428 ...
zspencer opened this issue May 4, 2023 · 2 comments
Open
1 task done
Tracked by #1428 ...

🌱πŸ₯”βœ¨ Utility: AWS::S3 #1430

zspencer opened this issue May 4, 2023 · 2 comments
Labels
✨ feature Reduces Client's Burden or Grants them Benefits πŸ₯” Satisfices It's good enough to use, but not particularly great πŸ”Œ Utility

Comments

@zspencer
Copy link
Member

zspencer commented May 4, 2023

Used By

Use Cases

  • Contributor may use standard ActiveStorage syntax to enable Uploads on Furniture

Rough Plan

We probably want each Space to have their own S3 bucket. However, we don't want each client to need an AWS account, so we are hoping to have a Neighborhood level AWS (or Vultr or insert provider here configuration) which we pass through the costs to the individual Space owners.

There's a doc on how to set up ActiveStorage so we can upload files to a Space-by-Space S3 Bucket: https://blog.geogo.in/activestorage-dont-limit-yourself-in-a-single-bucket-4af165adbf84

@zspencer zspencer changed the title Amazon::S3 Utility 🌱 Utility: AWS::S3 May 4, 2023
@zspencer zspencer changed the title 🌱 Utility: AWS::S3 🌱✨ Utility: AWS::S3 May 4, 2023
@zspencer zspencer added the ✨ feature Reduces Client's Burden or Grants them Benefits label May 4, 2023
@zspencer zspencer added this to the 1.0 - Andromeda milestone May 4, 2023
@anaulin
Copy link
Member

anaulin commented May 5, 2023

I don't see the need to have AWS S3 as a configurable Utility for now, or maybe ever. I don't think anyone running a Space needs to be bothered to have their own AWS account, and a hypothetical Neighborhood operator already can configure AWS for their Neighborhood via env variables.

Having a per-space bucket, while nice, doesn't seems necessary for the use cases that we have for now (Spotlight, and soon Marketplace product photos and Journal attachments), because the amount of storage use that these features generate is unlikely to be so big that we'll need to figure out how to pass through the costs to the Space owners. At least not in the short or mid term.

We can organize objects in S3 into sets that can be easily mapped to a space by using folders and/or a common naming schema (e.g. by having a folder name being the space id, or by always having the space id in the object name). Although with our current level of non-usage, I'd argue that this is also not really a requirement or a blocker for adding product photos.

@zspencer
Copy link
Member Author

zspencer commented May 6, 2023

To be clear, a Utility in the Convene domain is how I think of all interfaces between a Space or Neighborhood and an outside service. Whether the AWS::S3 Utility is attachable to a Space or Neighborhood or configurable during runtime, build-time, or deploy-time is less important to me than:

  • Communicating to potential Operators and Clients that Convene can store files on AWS S3
  • Consolidating the codeΒ for dealing with AWS in one place (once we hit rule-of-three)

I think on the 10-month time-scale, one-bucket-per-neighborhood is fine so long as we have a way to safely navigate:

  • Exporting all of a Client's data so they can run their own Neighborhood.
  • Passing costs through to the appropriate Client when their S3 costs increase to where that is prudent.

@zspencer zspencer changed the title 🌱✨ Utility: AWS::S3 🌱πŸ₯”βœ¨ Utility: AWS::S3 May 6, 2023
zspencer pushed a commit that referenced this issue May 6, 2023
- #1428
- #1430

Add basic support for Product photo upload, with space id in Active Storage filename.
@zspencer zspencer added the πŸ₯” Satisfices It's good enough to use, but not particularly great label May 18, 2023
zspencer added a commit that referenced this issue May 23, 2023
- #1430
- #1428

- Pulled from https://github.com/libvips/ruby-vips/blob/master/.github/workflows/test.yml

I'm not particularly pleased with this, but I didn't find a github
action; and I'm not entirely sure why the test passes locally but not on
CI.
zspencer added a commit that referenced this issue May 23, 2023
- #1430
- #1428

- Pulled from https://github.com/libvips/ruby-vips/blob/master/.github/workflows/test.yml

I'm not particularly pleased with this, but I didn't find a github
action; and I'm not entirely sure why the test passes locally but not on
CI.
zspencer added a commit that referenced this issue May 24, 2023
- #1430
- #1428

- Pulled from https://github.com/libvips/ruby-vips/blob/master/.github/workflows/test.yml

I'm not particularly pleased with this, but I didn't find a github
action; and I'm not entirely sure why the test passes locally but not on
CI.
zspencer added a commit that referenced this issue May 24, 2023
- #1430
- #1428

- Pulled from https://github.com/libvips/ruby-vips/blob/master/.github/workflows/test.yml

I'm not particularly pleased with this, but I didn't find a github
action; and I'm not entirely sure why the test passes locally but not on
CI.
zspencer added a commit that referenced this issue May 25, 2023
@zspencer zspencer removed this from the 1.0 - Andromeda milestone Jul 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ feature Reduces Client's Burden or Grants them Benefits πŸ₯” Satisfices It's good enough to use, but not particularly great πŸ”Œ Utility
Projects
None yet
Development

No branches or pull requests

2 participants