我正在PHP中構建一個Web應用程序。用戶將通過他們的賬戶進入。他們將擁有像系統中的照片,筆記等資源,就像Facebook一樣。公共和私有資源管理
我的第一個問題是不讓任何人訪問一個帳戶的私人資源。假設這是一張圖片。有3種情況:
- 每個人都可以通過圖片的URL訪問該圖片。
- 該圖片的所有者帳戶的朋友帳戶可以訪問該圖片。
- 只有所有者帳戶才能看到該圖片,其他人無法看到該圖片。即使有圖片的URL。
我不知道Facebook是否做了類似於第1點的任何事情。因爲業務很重要,並且也是用戶的隱私。
我的第一個想法是通過PHP文件進行所有資源訪問。但過了一段時間它看起來非常複雜。
我的另一個想法是保存數據庫表中所有資源的列表,並將隱私設置在一起。這看起來更好,但我不確定性能如何受到影響。
你有什麼想法,你會如何建立一個這樣的系統?
P.S.我打算再添加一個Web應用程序,並創建一個共享資源區來放入共享資源。我也需要同樣的特權系統。
我不知道Facebook即使在私密的情況下也可以看到圖片。無論如何,臉書有大約8億個帳戶。如果每個帳戶至少有100張圖片,則會變成800億個文件。他們或者對數千臺服務器使用不同的技術或相同的技術。 – tcak
@Johnny實際上,facebook使用了像[[user_id] _ [photograph_id] _ [random_number] _size'這樣的命名方案(不確定具體方案),他們可能會使用64位照片編號,這將允許大約10個每位用戶20張照片的強大功能。可以肯定地說,沒有人會達到......永遠! 800億隻是64位數中允許的最大數量的一小部分的一小部分。 – Ruben