欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

網(wǎng)站開發(fā)中的文件存儲目錄結(jié)構(gòu)的探討

 更新時間:2010年07月10日 00:37:43   作者:  
網(wǎng)站應(yīng)用中經(jīng)常會有文件存儲的需求,目錄結(jié)構(gòu)該怎么建才好呢?讓我們來做下分析
對于少量用戶寫信息,大量用戶都是在看信息的網(wǎng)站:例如CMS系統(tǒng),編輯發(fā)咨詢,用戶看,例如中小企業(yè)產(chǎn)品發(fā)布網(wǎng)站。 對于這類需求我們可以把文件專門放到一個目錄下,例如放到網(wǎng)站根目錄的upload目錄下,然后按天建文件夾,將每天的文件放到一個目錄下,文件名可采用數(shù)字生成。例如:upload/20100612/1224455.jpg;通常的情況下這種目錄結(jié)構(gòu)就可以保證每個目錄下不會有太多的文件。

對于博客,論壇應(yīng)用,需要對每個用戶分配文件存儲空間,如果有需求的話還要限制用戶的存儲空間,對于一般規(guī)模的網(wǎng)站目錄結(jié)構(gòu)可以用用戶id+日期的形式;例如upload/234/20100612/abc.jpg。如果規(guī)模較大,可以將文件分布到幾臺不同的服務(wù)器上,可以根據(jù)用戶id制定一個分布的規(guī)則,每臺服務(wù)器用不同的域名,并在數(shù)據(jù)庫中存儲文件的完整url地址,這種情況下的路徑結(jié)構(gòu)通常是:http://file1.abc.com/upload/234/20100612/abc.jpg。

我曾經(jīng)觀察過微軟的文件下載文件存儲的路徑結(jié)構(gòu),他是用guid生成的一個路徑,例如:http://download.microsoft.com/download/5/6/7/567758a3-759e-473e-bf8f-52154438565a/dotnetfx.exe ;它這個結(jié)構(gòu)目錄是guid的前三位和guid做了一個4級的目錄,這種情況下,就保證了,每個目錄下不會有很多目錄,因?yàn)槭莋uid所以每一個文件都放到一個單一的目錄下了,這種結(jié)構(gòu)對于做下載的網(wǎng)站應(yīng)該是一種不錯的選擇。

還有web2.0的網(wǎng)站會涉及到用戶頭像的存儲,頭像的存儲比較特殊,一個用戶固定有那么幾個尺寸的圖片,我們分析一下開心網(wǎng)和sina的頭像地址,看他們是如何做的存儲
1. 開心網(wǎng)的存儲,如下是兩對鏈接地址,每對中的第一個是頭像地址,第二個是用戶首頁,首頁中的參數(shù)是用戶id

http://pic1.kaixin001.com.cn/logo/13/39/50_133973_82.jpg

http://www.kaixin001.com/home/?uid=133973

http://www.kaixin001.com/home/?uid=36131662

http://pic.kaixin001.com.cn/logo/13/16/50_36131662_2.jpg

可以看出開心網(wǎng)的存儲方式是存儲到幾臺不同的服務(wù)器上,頭像的地址是根據(jù)用戶的id去劃分目錄做的存儲,id的前4位被分成兩個目錄,文件名用的是包含前綴+用戶id+后綴的方式做的存儲。
2. 如下是兩對sina的空間地址,和博客頭像的地址

http://space.sina.com.cn/u/1642511512

http://portrait1.sinaimg.cn/1642511512/blog/180

http://space.sina.com.cn/u/1725778305

http://portrait2.sinaimg.cn/1725778305/blog/180

Sina博客頭像的存儲方式和開心不同,是用戶id做一級目錄,然后加上blog(應(yīng)該是應(yīng)用的名字)再加上一個數(shù)字180(猜想可能是頭像類型的數(shù)字);sina和開心的區(qū)別是沒有圖片擴(kuò)展名,猜想它可能是把頭像放到了一個鍵值對的數(shù)據(jù)庫中,根據(jù)url參數(shù)從鍵值對數(shù)據(jù)庫中取出頭像的圖片數(shù)據(jù),然后輸出給客戶端

從上面的分析可以猜想開心可能是直接存的文件,而sina可能存儲在鍵值對數(shù)據(jù)庫中,如果數(shù)據(jù)量很大的話,應(yīng)該是新浪的方式根據(jù)伸縮性。

最后我們還得提一下為我們提供服務(wù)的博客園的存儲方式,如下地址:

http://pic.cnblogs.com/face/u15230.jpg

http://pic.cnblogs.com/face/u105416.png

http://pic.cnblogs.com/face/u40200.png

很簡單直觀應(yīng)該是放到了一個目錄下,直接用戶id做的文件名,沒有分目錄結(jié)構(gòu),這樣在文件夾中文件過多時是否會引起性能問題呢?

相關(guān)文章

  • git fetch與git pull的區(qū)別詳解

    git fetch與git pull的區(qū)別詳解

    這篇文章主要介紹了git fetch與git pull的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 變量、函數(shù)、類的命名規(guī)則

    變量、函數(shù)、類的命名規(guī)則

    在閱讀clean code書籍的時候,讓我體會很多,因此我也用文字記錄下這些有意義的知識。我認(rèn)為這本書讀十遍都不為過,下面我講解一下自己的關(guān)于變量、函數(shù)、類的命名規(guī)則筆記。
    2011-08-08
  • git clone 子模塊沒下載全的問題解決

    git clone 子模塊沒下載全的問題解決

    這篇文章主要介紹了git clone 子模塊沒下載全的問題解決,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • 使用swipe方法模擬屏幕滑動與手勢密碼繪制

    使用swipe方法模擬屏幕滑動與手勢密碼繪制

    這篇文章主要介紹了使用swipe方法模擬屏幕滑動與手勢密碼繪制 ,本文通過實(shí)力代碼,圖文效果的形式給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-08-08
  • VSCode 遠(yuǎn)程登錄開發(fā)(帶免密)

    VSCode 遠(yuǎn)程登錄開發(fā)(帶免密)

    這篇文章主要介紹了VSCode 遠(yuǎn)程登錄開發(fā)(帶免密),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Fiddler?Everywhere?4.0.1的破解及禁止更新的方法(最新推薦)

    Fiddler?Everywhere?4.0.1的破解及禁止更新的方法(最新推薦)

    Fiddler?Everywhere是個好東西,無論抓包還是調(diào)試接口都很好用,只是現(xiàn)在收費(fèi)了,為了白嫖就決定折騰一下,如果一開始通過設(shè)置文件夾權(quán)限禁止更新,也會導(dǎo)致進(jìn)不了使用界面而無法使用,下面說一下具體的解決過程
    2023-11-11
  • wireshark網(wǎng)絡(luò)抓包工具的使用教程

    wireshark網(wǎng)絡(luò)抓包工具的使用教程

    WireShark是非常流行的網(wǎng)絡(luò)抓包分析工具,可以截取各種網(wǎng)絡(luò)數(shù)據(jù)包,并顯示數(shù)據(jù)包詳細(xì)信息,下面就跟隨小編一起學(xué)習(xí)一下wireshark的具體使用吧
    2023-08-08
  • 算法系列15天速成 第六天 五大經(jīng)典查找【下】

    算法系列15天速成 第六天 五大經(jīng)典查找【下】

    大家是否感覺到,樹在數(shù)據(jù)結(jié)構(gòu)中大行其道,什么領(lǐng)域都要沾一沾,碰一碰
    2013-11-11
  • 千萬要避免的五種程序注釋方式小結(jié)

    千萬要避免的五種程序注釋方式小結(jié)

    你是否有過復(fù)查程序時發(fā)現(xiàn)有些注釋毫無用處?程序注釋是為了提高代碼的可讀性,為了讓原作者以外的其他開發(fā)人員更容易理解這段程序。
    2011-10-10
  • 瀏覽器關(guān)閉使session失效的問題多種解決方式

    瀏覽器關(guān)閉使session失效的問題多種解決方式

    直接關(guān)閉瀏覽器(或者強(qiáng)制關(guān)閉瀏覽器進(jìn)程、死機(jī)等),服務(wù)器無法處理用戶退出網(wǎng)站的請求,此舉將會導(dǎo)致session失效,下面整理了一些解決方法,感興趣的朋友可以參考下哈
    2013-07-07

最新評論