This is all what you would build, a nice UI to handle folders. You would make a “File” datatype containing all the fields like filename, URL, object key, file size. Then you add privacy rules so only users see their own.
Wasabi apparently has restrictions on public now so it doesn’t seem to fit my use case since I’ll need to stream videos and/or display photos and files.
I’d rather have a simple folder structure so that if I choose to move, it’s relatively easy to move the entire folder structure.
Feels like that would be very difficult with Bubble.
I don’t structure the files actually in the bucket how the user would see it, I just bury every file in it’s unique ID, so its like appstorage/[unique id]/filename.ext
Like how Bubble just dumps all files in appforest/[some app unique id]/f[unique id]/filename.ext
Then you handle the visual file structure in Bubble by associating Files with a datatype Folder
If it’s heavy video streaming might want a CDN anyways to cache all the files. (This is what Wasabi support suggests for public files) But Wasabi not allowing public files is a good thing for you, because it keeps all files private unless you generate a pre-signed URL to download/view the file on demand. So you just make sure to only generate the URL if the user has permission
Sure, but from what I’ve read the URL only lasts 12 hours. So now I’ve got to manage some other process to generate a URL for every file that they might have to view in real time? Seems kind of convoluted unless I’m missing something?
Yea it’s by design that you generate it on demand, so only need the URL valid for a certain amount of time. Like if a user loses permission for a file, you don’t want them to just bookmark the link to the file, after X amount of minutes/hours the link wouldn’t work anymore.
I just have a Google Cloud Function that generates the signed URL. Then you can use the API Connector setup as Data. So you just stick that data source whenever you need a URL and it securely generates a new one on demand
When you mark a Bubble file as “private” thats exactly what happens, when you try to view the file Bubble checks to make sure you have permission, if so it generates a presigned URL for you to view, that’s why the file has all the addition parameters in the URL for private files. And every time you view a private file the URL is slightly different (generating a fresh one every time)
Yeah, I’m using the main admin account. I haven’t created any sub users.
Also, we have another app that’s using Wasabi but we don’t need to use pre-signed URLs to make it visible to the public. We just make the bucket public - making it very easy for us haha. This account, however, was created prior to their update wherein users would be unable to set their bucket to public.
If you are looking to upload videos and Photos for streaming purposes, I suggest Mux one of the best media storage for streaming purposes, plus the URL never expires. and you can restrict access to a group of people. if I am not mistaken.
As @ntabs suggested, wasabi egress may raise an issue if your sole purpose is to stream. wasabi is not design for streaming, what mux do it encode you file in multiple sizes and make them less light weight to user to stream.
Just curious , if you make the bucket public , aren’t anyone with little knowledge on how to manipulate URL and usage of dev tool, can view the root level of bucket and all the video be available to him.