Welcome to the Question2Answer Q&A. There's also a demo if you just want to try it out.
+10 votes
in Q2A Core by
It works slower. Nginx faster, gives statics than working on a php script + the query to the database. Photo profiles, pictures in questions and answers, if the user base 100.000 + 1.000.000 with photos - it will be a heavy load on the cpu/web server/database server?
Q2A version: 1.8
why hide avatars?
Avatars often contain personal information like photos.
reshown by
I repeat, most sites questions and answers to hide the avatar is not necessary! Why upload an avatar to the Internet to hide it later? For what?
Answer is quite simple: access control.
If something is there it does not mean everyone should see it.

For example, you provided your email address to this site, but I cannot see it. Admin can.

On sites I admin, users do upload avatars but they do not want neither avatars nor their names to to be visible to ANONYMOUS visitors of the site. They want that level of privacy.

2 Answers

0 votes
Every static request is a request to the script and (filesystem | database) -- second can be configured.
Do you know how to do what I need?

Home page https://gateoverflow.in/ has
276 requests (Vancouver, Canada)  :) 17,3 sec and page size 4.9 MB.
216 Requests Washington DC, Load time 4.73 s
230 Requests Australia Sydney, Load time 13.74 s
218 Requests from London, Load time 6.51 s

And this is with more than 20K visitors per day!
You don't like your users?
Have you heard anything about website optimization? :) If not, ask me how :)
@Putin , what about https://gateoverflow.net/ :)
this is small site on bluehost
+3 votes

Firstly, do note that you can store the images themselves on disk, if you set the config option and the folder permissions. There’s also a button on the Admin > Stats page to move existing blobs from database to disk.

But the link to the image still uses the database. There are a few reasons for that:

  • Storing in the database means images can be used without any extra config like setting folder permissions.
  • It links each image to a user, so even if they don’t use the image in a post you can see who uploaded it (useful for spam).
  • It stores other information such as upload date (which may not be available if you copy or move files around).
  • It allows images to be resized on the fly - look at your avatar for example, it’s shown at different sizes in different places but is only stored once. If you changed the sizes in settings you don’t need to regenerate thousands of files.
  • It allows for permissions checking and other features as mentioned above.

You are correct that “most sites don’t need the extra functionality”, but it’s also not future-proof. If we use direct image links, then there is no easy way to add the other options to the old files in the future.

Having said that, I can certainly see valid reasons for linking files directly. The biggest stumbling block would be the image resizing, for which I cannot think of any good solution. If you have one let me know.

"you can see who uploaded it" - That's the most valuable reason to have the DB take care of this. You can also list image uploads by user. And the upload date mentioned.

The only issue I have currently: How to read/store the images from an external block storage. Can I call the ?qa-blob=... link to load the image from the external server without any load to my main server?

Related: https://www.question2answer.org/qa/50346/