Hi HN.<p>Some of my recent hobby projects have involved user's uploading their own files, such as videos, images, and generally things that don't belong in most databases. It's important to me that if they were to trust me with their content that I'd have reliable storage - so I don't want to spin up my own solution for this and looked around to find something that already exists.<p>The obvious first place was AWS S3, and while it doesn't directly serve this need you can set it up to do so with presigned URLs and object permissions (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ShareObjectPreSignedURL.html). This can work, but as far as object storage goes AWS is very expensive. I also looked into Google Storage through Firebase (https://firebase.google.com/products/storage) which with some configuration through Firebase authentication can also achieve (but locks you into their auth) - and again, very expensive.<p>My ideal would be an option like Backblaze B2, which is considerably cheaper - but isn't designed with this use-case in mind. Depsite having an AWS compatible API, and supporting pre-signed URLs, I couldn't find a reliable way to assign objects to users through metadata.<p>I was really hoping for some easy-to-use white label solution for this, but it just seems like it doesn't exist.<p>So what do people do for things like this? My AC is:<p>- Allow specific users to upload any media<p>- Allow user > object assignment<p>- Some auth around the above<p>- Reasonably priced (minimal egress costs)
It sounds like you are describing something like a hosted Nextcloud [1] instance but I have no idea if that makes sense cost-wise. They have a comparison page [2] that also mentions some of the other related services. I have only used the self-hosted version of their applications and honestly have no idea how much their hosted solution costs.<p>[1] - <a href="https://nextcloud.com/" rel="nofollow">https://nextcloud.com/</a><p>[2] - <a href="https://nextcloud.com/compare/" rel="nofollow">https://nextcloud.com/compare/</a>
Have a look at: <a href="https://solidproject.org" rel="nofollow">https://solidproject.org</a><p>And the Pod providers: <a href="https://solidproject.org/users/get-a-pod" rel="nofollow">https://solidproject.org/users/get-a-pod</a>