Image viewing : permission denied

Hey,

I’m working on work tracker tool using baserow hosted on cloudron.
I have created file field in table A
Users upload images to above 5 MB.

Files are properly uploaded, thumbnails are created.

The issue is that one I open row in modal in baserow, then original file cannot be shown.

There is error in baserow’s logs:
Mar 19 14:43:552024/03/19 13:43:55 [error] 35#35: *18634 open() “/app/data/media/user_files/2kKBfyXwsByu02n0eWzu7NDJ0Xe7uyR8_364e9c032bf8016f6a13ef48f7ee8f7726b94d573631a9d7ae45b88839500906.jpg” failed (13: Permission denied), client: 172.18.0.1, server: , request: “GET /media/user_files/2kKBfyXwsByu02n0eWzu7NDJ0Xe7uyR8_364e9c032bf8016f6a13ef48f7ee8f7726b94d573631a9d7ae45b88839500906.jpg HTTP/1.1”, host: “data.staff.10s.pl”, referrer: “Login // Baserow
Mar 19 14:43:55172.18.0.1 - - [19/Mar/2024:13:43:55 +0000] “GET /media/user_files/2kKBfyXwsByu02n0eWzu7NDJ0Xe7uyR8_364e9c032bf8016f6a13ef48f7ee8f7726b94d573631a9d7ae45b88839500906.jpg HTTP/1.1” 403 196 “Login // Baserow” “Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36”

From ui I cannot see or download file:

Image is properly uploded. I can find it and display in file manager.
However I cannot see that original image from baserow.

Hi @parhelium, would you mind sharing more details on how you’re currently self-hosting, and which environment variables you have configured?

Hi @bram

I’m self-hosting using cloudron.

https://baserow.io/docs/installation/configuration

Mm… which owner does it says the folder and files have in the file explorer of Cloudron? You can make try to click on “Change ownership”, change to a different owner, and see if it then works.

@bram
Changing ownership doesn’t change anything.

I noticed it depends on the size of the file.
Maybe nginx config for cloudron.

Files are there, but it shows 403 error when I try to download bigger file.

I tested 2 files ( 250 kB and 6 MB jpg) on baserow.io and my instances of slef-hosted on cloudron.
One file ( smaller ) was working fine on all instances.
Second file ( bigger ) was working only on baserow.io, and on cloudron instances, there was 403 error via nginx.

@bram
I made another test on one big file.
Convertered original file ( 5.6 MB ) to the same size jpgs but with different quality.
In result I had files having from 800 kB to 5.6 MB with same resolution.

Everything was working fine, untill image size is above 3 MB.
It looks like it is issue with nginx configuration of baserow package on cloudron.

I don’t see any limitation there, but will ask cloduron team.

Thanks

Hey @parhelium, thank you for debugging this problem. It’s interesting that files above 3MB are somehow not working. I just tried a file of 4MB, but it did work as expected in our Cloudron instance. I think it’s a good idea to ask in their community. I’m curious about their response.

@bram
Asked them there:

@bram

You were right. Changing permissions of big files to www-datasolve the problem.

So it looks like tmp folder of nginx should have different group ownership.

Cloudron sets tmp folders of nginx to www-data.cloudron.

Glad to hear that it’s now working!

Cloudron team fixed issue in latest release 1.18.3.

@bram thanks for the help !