文件下載方法、裝置和系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種文件下載方法、服務(wù)器、下載接入節(jié)點(diǎn)和分布式存儲(chǔ)系統(tǒng),屬于通信【技術(shù)領(lǐng)域】,為解決現(xiàn)有技術(shù)中增加了服務(wù)器的負(fù)載,降低了鑒權(quán)速度和文件下載的響應(yīng)速度的問題而設(shè)計(jì)。一種文件下載方法,包括:服務(wù)器獲取設(shè)置的下載權(quán)限,生成下載權(quán)限的訪問控制列表參數(shù);服務(wù)器發(fā)布包含訪問控制列表參數(shù)的下載鏈接,以便于終端獲取下載鏈接并生成包含訪問控制列表參數(shù)的下載請(qǐng)求。
【專利說明】文件下載方法、裝置和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于通信【技術(shù)領(lǐng)域】,尤其涉及一種文件下載方法、服務(wù)器、下載接入節(jié)點(diǎn)和分布式存儲(chǔ)系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)通信技術(shù)的不斷普及,網(wǎng)盤、云存儲(chǔ)系統(tǒng)等各類分布式存儲(chǔ)系統(tǒng)逐漸被越來越多的用戶使用。在分布式存儲(chǔ)系統(tǒng)中,帶寬和服務(wù)器資源都是有限的,如何更好地保護(hù)分布式存儲(chǔ)系統(tǒng)開發(fā)者的利益以及如何為用戶創(chuàng)造良好的用戶體驗(yàn)被視為一個(gè)熱點(diǎn)問題。通過訪問權(quán)限來限制終端從分布式存儲(chǔ)系統(tǒng)下載文件從而實(shí)現(xiàn)防止盜鏈的作用,例如可以通過判定下載請(qǐng)求的請(qǐng)求源、客戶端、19(1111:611161: ?1~01:0001,互聯(lián)網(wǎng)之間互連的協(xié)議)段、下載有效期等條件來防止盜鏈的出現(xiàn)。
[0003]在現(xiàn)有技術(shù)中,下載權(quán)限存儲(chǔ)在服務(wù)器中,在進(jìn)行文件下載時(shí),需要下載接入節(jié)點(diǎn)將下載請(qǐng)求發(fā)送至服務(wù)器以通過服務(wù)器進(jìn)行鑒權(quán),或者,下載接入節(jié)點(diǎn)需要向服務(wù)器請(qǐng)求下載權(quán)限以完成鑒權(quán),這樣一來,在進(jìn)行鑒權(quán)的過程中,增加了服務(wù)器的負(fù)載,也降低了鑒權(quán)速度和文件下載的響應(yīng)速度。
【發(fā)明內(nèi)容】
[0004]本發(fā)明的實(shí)施例提供一種文件下載方法、服務(wù)器、下載接入節(jié)點(diǎn)和分布式存儲(chǔ)系統(tǒng),能夠降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和文件下載的響應(yīng)速度。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,本發(fā)明提供了一種文件下載方法,包括:
[0007]服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù);
[0008]所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于所述終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
[0009]結(jié)合本發(fā)明的第一方面,在本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式中,在所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù)之前,還包括:
[0010]所述服務(wù)器獲取上傳文件的文件參數(shù),生成所述上傳文件的原始下載鏈接;
[0011]所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù),包括:
[0012]所述服務(wù)器獲取設(shè)置的下載權(quán)限;
[0013]所述服務(wù)器根據(jù)所述下載權(quán)限生成訪問控制列表;
[0014]所述服務(wù)器根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);
[0015]所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0016]結(jié)合本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第二種可能的實(shí)現(xiàn)方式中,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0017]所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
[0018]結(jié)合本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0019]當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),所述服務(wù)器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0020]結(jié)合本發(fā)明第一方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第四種可能的實(shí)現(xiàn)方式中,在所述服務(wù)器獲取上傳文件的文件參數(shù),生成所述上傳文件的原始下載鏈接之前,還包括:
[0021]所述服務(wù)器獲取上傳文件時(shí)的用戶信息;
[0022]所述服務(wù)器根據(jù)所述用戶信息,針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
[0023]結(jié)合本發(fā)明第一方面或上述第一方面的任一種可能的實(shí)現(xiàn)方式,在本發(fā)明第一方面的第五種可能的實(shí)現(xiàn)方式中,所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,包括:
[0024]所述服務(wù)器接收所述終端的下載鏈接獲取請(qǐng)求;
[0025]所述服務(wù)器將所述下載鏈接發(fā)送給所述終端。
[0026]第二方面,本發(fā)明提供了一種文件下載方法,包括:
[0027]下載接入節(jié)點(diǎn)接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù);
[0028]所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán);
[0029]所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0030]結(jié)合第二方面,在本發(fā)明第二方面的第一種可能的實(shí)現(xiàn)方式中,所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán),包括:
[0031]所述下載接入節(jié)點(diǎn)根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;
[0032]當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行下載;
[0033]當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0034]所述下載接入節(jié)點(diǎn)通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0035]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第二方面的第二種可能的實(shí)現(xiàn)方式中,所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端,包括:
[0036]當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行上傳文件的下載;
[0037]或者,
[0038]當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0039]第三方面,本發(fā)明還提供了一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器,包括:
[0040]接收單元,用于獲取設(shè)置的下載權(quán)限;
[0041]生成單元,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù);
[0042]發(fā)送單元,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
[0043]結(jié)合第三方面,在本發(fā)明第三方面的第一種可能的實(shí)現(xiàn)方式中,所述接收單元,還用于獲取上傳文件的文件參數(shù);
[0044]所述生成單元包括:
[0045]生成模塊,用于根據(jù)所述下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述上傳文件的原始下載鏈接;
[0046]加密模塊,用于根據(jù)與下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0047]結(jié)合本發(fā)明第三方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第二種可能的實(shí)現(xiàn)方式中,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0048]所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行可逆加密后形成所述控制項(xiàng)參數(shù)。
[0049]結(jié)合本發(fā)明第三方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第三種可能的實(shí)現(xiàn)方式中,所述服務(wù)器還包括協(xié)商單元;
[0050]所述協(xié)商單元,用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0051]結(jié)合本發(fā)明第三方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第四種可能的實(shí)現(xiàn)方式中,所述接收單元,還用于獲取上傳文件時(shí)的用戶信息;
[0052]所述協(xié)商單元,還用于根據(jù)所述用戶信息,針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
[0053]結(jié)合本發(fā)明第三方面或上述第三方面的任一種可能的實(shí)現(xiàn)方式,在本發(fā)明第三方面的第四種可能的實(shí)現(xiàn)方式中,所述接收單元,還用于接收所述終端的下載鏈接獲取請(qǐng)求;
[0054]所述發(fā)送單元,具體用于將所述下載鏈接發(fā)送給所述終端。
[0055]第四方面,本發(fā)明公開了一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),包括:
[0056]接收單元,用于接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù);
[0057]鑒權(quán)單元,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán);
[0058]發(fā)送單元,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0059]結(jié)合本發(fā)明的第四方面,在本發(fā)明第四方面的第一種可能的實(shí)現(xiàn)方式中,所述鑒權(quán)單元包括解密模塊和鑒權(quán)模塊;
[0060]解密模塊,用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0061]所述發(fā)送單元,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0062]所述鑒權(quán)單元還包括:
[0063]鑒權(quán)模塊,用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0064]結(jié)合第四方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第四方面的第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送單元,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0065]第五方面,本發(fā)明還提供了一種分布式存儲(chǔ)系統(tǒng),包括上述任一種的服務(wù)器和上述任一種的下載接入節(jié)點(diǎn)。
[0066]第六方面,本發(fā)明還提供了一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器,包括接收器、處理器和發(fā)送器;
[0067]所述接收器,用于獲取設(shè)置的下載權(quán)限;
[0068]所述處理器,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù);
[0069]所述發(fā)送器,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
[0070]結(jié)合第六方面,在本發(fā)明第六方面的第一種可能的實(shí)現(xiàn)方式中,所述接收器,還用于獲取上傳文件的文件參數(shù);
[0071]所述處理器,具體用于根據(jù)所述下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述文件的原始下載鏈接;根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0072]結(jié)合第六方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第六方面的第二種可能的實(shí)現(xiàn)方式中,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0073]所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
[0074]結(jié)合第六方面的第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第六方面的第三種可能的實(shí)現(xiàn)方式中,所述處理器,還用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),通過所述發(fā)送器和所述接收器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0075]結(jié)合第六方面的第三種可能的實(shí)現(xiàn)方式,在本發(fā)明第六方面的第四種可能的實(shí)現(xiàn)方式中,所述接收器,還用于獲取上傳文件時(shí)的用戶信息;
[0076]所述處理器,還用于根據(jù)所述用戶信息,通過所述發(fā)送器和所述接收器針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
[0077]結(jié)合第六方面或第六方面的任一種可能的實(shí)現(xiàn)方式,在本發(fā)明第六方面的第五種可能的實(shí)現(xiàn)方式中,所述接收器,還用于接收所述終端的下載鏈接獲取請(qǐng)求;
[0078]所述發(fā)送器,具體用于將所述下載鏈接發(fā)送給所述終端。
[0079]第七方面,本發(fā)明還提供了一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),包括接收器、處理器和發(fā)送器;
[0080]所述接收器,用于接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù);
[0081]所述處理器,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán);
[0082]所述發(fā)送器,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0083]結(jié)合本發(fā)明的第七方面,在本發(fā)明第七方面的第一種可能的實(shí)現(xiàn)方式中,所述處理器,具體用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0084]所述發(fā)送器,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0085]所述處理器,還用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0086]結(jié)合本發(fā)明第七方面第一種可能的實(shí)現(xiàn)方式,在本發(fā)明第七方面第二種可能的實(shí)現(xiàn)方式中,所述發(fā)送器,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;或者,當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0087]本發(fā)明公開了一種文件下載方法、服務(wù)器、下載接入節(jié)點(diǎn)和分布式存儲(chǔ)系統(tǒng),服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
【專利附圖】
【附圖說明】
[0088]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0089]圖1為本發(fā)明所述的分布式存儲(chǔ)系統(tǒng)的結(jié)構(gòu)示意圖;
[0090]圖2為本發(fā)明所述的服務(wù)器的一種文件下載方法的流程圖;
[0091]圖3為本發(fā)明所述的服務(wù)器的另一種文件下載方法的流程圖;
[0092]圖4為本發(fā)明所述的服務(wù)器的另一種文件下載方法的流程圖;
[0093]圖5為本發(fā)明所述的下載接入節(jié)點(diǎn)的一種文件下載方法的流程圖;
[0094]圖6為本發(fā)明所述的下載接入節(jié)點(diǎn)的另一種文件下載方法的流程圖;
[0095]圖7為本發(fā)明所述的實(shí)施例中所述的一種結(jié)構(gòu)示意圖;
[0096]圖8為本發(fā)明所述的實(shí)施例中所述的一種文件下載方法的流程圖;
[0097]圖9為本發(fā)明所述的實(shí)施例中所述的另一種文件下載方法的流程圖;
[0098]圖10為本發(fā)明所述的實(shí)施例中所述的另一種文件下載方法的流程圖;
[0099]圖11為本發(fā)明所述的服務(wù)器的結(jié)構(gòu)示意圖;
[0100]圖12為本發(fā)明所述的下載接入節(jié)點(diǎn)的結(jié)構(gòu)示意圖;
[0101]圖13為本發(fā)明所述的服務(wù)器的示意圖;
[0102]圖14為本發(fā)明所述的下載接入節(jié)點(diǎn)的示意圖。
【具體實(shí)施方式】
[0103]下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例的文件下載方法、服務(wù)器、下載接入節(jié)點(diǎn)和分布式存儲(chǔ)系統(tǒng)進(jìn)行詳細(xì)描述。
[0104]應(yīng)當(dāng)明確,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0105]本發(fā)明提供了一種文件下載方法,應(yīng)用于分布式存儲(chǔ)系統(tǒng)中。該分布式存儲(chǔ)系統(tǒng)1,例如網(wǎng)盤、云存儲(chǔ)系統(tǒng),如圖1所示,包括服務(wù)器100、下載接入節(jié)點(diǎn)200。其中,服務(wù)器100通過廣域網(wǎng)400連接下載接入節(jié)點(diǎn)200,下載接入節(jié)點(diǎn)200連接終端300。需要說明的是,服務(wù)器100通過廣域網(wǎng)400與分布在距離用戶的終端300較近的下載接入節(jié)點(diǎn)200連接;該下載接入節(jié)點(diǎn)200可以分別連接多臺(tái)終端300,并分別接收并轉(zhuǎn)發(fā)各個(gè)終端300的報(bào)文等;該下載接入節(jié)點(diǎn)200,可以為自建的邊緣節(jié)點(diǎn),也可以是所購(gòu)買的CDN。通過邊緣節(jié)點(diǎn)和CDN可以對(duì)數(shù)據(jù)報(bào)文進(jìn)行接收和轉(zhuǎn)發(fā),也可以提供文件的下載。一般來說,在分布式存儲(chǔ)系統(tǒng)I中,還會(huì)包括用來存儲(chǔ)文件的緩存服務(wù)器(未圖示),用戶可以從該緩存服務(wù)器獲取所需下載的文件,該緩存服務(wù)器可以視為與所述下載接入節(jié)點(diǎn)200是相同的設(shè)備。該下載接入節(jié)點(diǎn)200的一般會(huì)設(shè)置有很多,并且配置于各地,以便用戶可以就近接入。另外,該終端300可以為平板電腦300A、個(gè)人電腦300B和便攜電腦300C等,在此不對(duì)終端300的類型進(jìn)行限制。
[0106]當(dāng)用戶需要向分布式存儲(chǔ)系統(tǒng)I中上傳,則首先需要通過終端300上所安裝的客戶端或通過瀏覽器對(duì)分布式存儲(chǔ)系統(tǒng)I進(jìn)行訪問,并將需要進(jìn)行存儲(chǔ)、共享的上傳文件上傳至分布式存儲(chǔ)系統(tǒng)I中。
[0107]終端與下載接入節(jié)點(diǎn)200建立連接,將文件上傳至下載接入節(jié)點(diǎn)200中。該設(shè)備對(duì)用戶所上傳的文件進(jìn)行存儲(chǔ),并由服務(wù)器100生成存儲(chǔ)該文件的原始下載鏈接,該原始下載鏈接用于標(biāo)識(shí)文件所在的位置。在文件上傳完成后,用戶可以針對(duì)允許下載該文件的范圍進(jìn)行設(shè)置,即設(shè)置下載權(quán)限,該下載權(quán)限中包括請(qǐng)求源的黑白名單、客戶端的黑白名單、IP段的黑白名單和允許下載的有效期等,但上面指出的只是可以作為下載權(quán)限的部分內(nèi)容,用戶還可以針對(duì)不同的需求設(shè)置其他類型的下載權(quán)限,在此不做限制。
[0108]本發(fā)明提供的一種文件下載方法實(shí)施例,以該方法應(yīng)用于服務(wù)器200為例進(jìn)行說明,參見圖2所示,該文件下載方法包括:
[0109]S100、所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù)。
[0110]服務(wù)器100根據(jù)用戶的設(shè)置生成并存儲(chǔ)下載權(quán)限的訪問控制列表,在該訪問控制列表中包含有上述下載權(quán)限中所設(shè)置的請(qǐng)求源的黑白名單、客戶端的黑白名單、IP段的黑白名單和允許下載的有效期等。
[0111]S110、所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于所述終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求,以便于所述下載接入節(jié)點(diǎn)接收所發(fā)起的下載請(qǐng)求并根據(jù)所述終端的下載參數(shù)和所述訪問控制列表參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)并將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0112]在生成下載權(quán)限的訪問控制列表后,服務(wù)器100會(huì)對(duì)訪問控制列表進(jìn)行轉(zhuǎn)碼,以形成訪問控制列表參數(shù)。服務(wù)器100會(huì)將該訪問控制列表參數(shù)附加到下載鏈接中進(jìn)行發(fā)布。此處所說的發(fā)布可以是服務(wù)器100將下載鏈接直接發(fā)送到終端,以在終端的瀏覽器頁(yè)面上顯示供用戶在互聯(lián)網(wǎng)上發(fā)布,或者通過終端上的客戶端向服務(wù)器100發(fā)送下載鏈接獲取請(qǐng)求后,服務(wù)器100根據(jù)該下載鏈接獲取請(qǐng)求將下載鏈接發(fā)送給該終端。
[0113]在終端接收到的下載鏈接中包含有標(biāo)識(shí)需要下載的文件的位置的原始下載鏈接、限制下載權(quán)限的訪問控制列表參數(shù)以及其他信息,例如還可以包含后述的散列值。根據(jù)該下載鏈接生成針對(duì)于文件的下載請(qǐng)求,在該下載請(qǐng)求中至少包含原始下載鏈接和訪問控制列表參數(shù),也還可以包含后述的散列值。
[0114]在下載接入節(jié)點(diǎn)200接收到終端的下載請(qǐng)求后,會(huì)對(duì)該下載請(qǐng)求進(jìn)行解析,從而獲得其中的訪問控制列表參數(shù);對(duì)該訪問控制列表參數(shù)進(jìn)行轉(zhuǎn)碼等操作后,獲取包含下載權(quán)限的信息的訪問控制列表,從該下載請(qǐng)求獲取終端的下載參數(shù),該下載參數(shù)中包含有請(qǐng)求源信息、客戶端信息、IP段和請(qǐng)求時(shí)間等信息;通過比對(duì)下載參數(shù)和訪問控制列表中的信息,從而確定該下載請(qǐng)求是否滿足所設(shè)置的下載權(quán)限。
[0115]可選的,參見圖3,所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,包括:
[0116]S111、所述服務(wù)器接收所述終端的下載鏈接獲取請(qǐng)求;
[0117]S112、所述服務(wù)器將所述下載鏈接發(fā)送給所述終端。
[0118]當(dāng)用戶通過終端上的客戶端進(jìn)行上傳和下載權(quán)限設(shè)置時(shí),用戶無需將原始下載鏈接或最終下載鏈接在互聯(lián)網(wǎng)上進(jìn)行公布,而只需要對(duì)上傳文件進(jìn)行上傳并設(shè)置下載權(quán)限。此時(shí),服務(wù)器100會(huì)自動(dòng)生成分布式存儲(chǔ)系統(tǒng)I中的下載項(xiàng)目。當(dāng)其他用戶通過客戶端選擇該下載項(xiàng)目時(shí),客戶端會(huì)向服務(wù)器100發(fā)起下載鏈接獲取請(qǐng)求,以獲取完成文件下載所需要的原始下載鏈接或原始下載鏈接、訪問控制列表參數(shù)和散列值。
[0119]當(dāng)其他用戶通過客戶端向服務(wù)器100發(fā)起下載鏈接獲取請(qǐng)求時(shí),根據(jù)不同的方式會(huì)進(jìn)行不同的處理。
[0120]當(dāng)其他用戶操作終端300上所安裝的客戶端進(jìn)行下載時(shí),服務(wù)器100會(huì)接收到該文件下載的下載鏈接獲取請(qǐng)求,則服務(wù)器100根據(jù)該下載鏈接獲取請(qǐng)求向終端300發(fā)送原始下載鏈接和訪問控制列表參數(shù)。此時(shí),在其他用戶請(qǐng)求文件下載時(shí),客戶端會(huì)根據(jù)剛剛獲取的原始下載鏈接和訪問控制列表參數(shù)進(jìn)行下載請(qǐng)求。
[0121]此時(shí),因?yàn)榭蛻舳丝梢愿鶕?jù)HTTP協(xié)議(HTTP-Hypertext transfer protocol,超文本傳送協(xié)議)進(jìn)行HTTP協(xié)議中的下載請(qǐng)求的定制,即針對(duì)需要可以在客戶端中設(shè)置一項(xiàng)用于存儲(chǔ)訪問控制列表參數(shù)。在進(jìn)行下載請(qǐng)求時(shí),將獲取的訪問控制列表參數(shù)加載到根據(jù)下載請(qǐng)求的HTTP頭部,并將其發(fā)送到下載接入節(jié)點(diǎn)200進(jìn)行鑒權(quán)。
[0122]為了避免不滿足下載權(quán)限的用戶獲知下載權(quán)限,則需要對(duì)包含有下載權(quán)限的訪問控制列表進(jìn)行加密。該加密通過密鑰來實(shí)現(xiàn),此處的密鑰是由服務(wù)器100和下載接入節(jié)點(diǎn)200約定形成的。在該密鑰形成后,服務(wù)器100和下載接入節(jié)點(diǎn)200會(huì)分別對(duì)密鑰進(jìn)行存儲(chǔ)。該密鑰可以根據(jù)實(shí)際的情況進(jìn)行設(shè)置,一種密鑰用于進(jìn)行可逆加密,另一種密鑰用于進(jìn)行散列運(yùn)算以獲取散列值。在設(shè)置時(shí),可以選擇其中的任意一種,或分別通過兩種密鑰進(jìn)行加密。
[0123]這里所說的密鑰可以通過多種形式進(jìn)行設(shè)置,例如可以在分布式存儲(chǔ)系統(tǒng)I建立的時(shí)候,通過服務(wù)器100和下載接入節(jié)點(diǎn)200之間協(xié)商形成;也可以針對(duì)每一個(gè)使用分布式存儲(chǔ)系統(tǒng)I的用戶設(shè)置密鑰,即在用戶登陸分布式存儲(chǔ)系統(tǒng)I的時(shí)候,通過登陸時(shí)的用戶信息進(jìn)行標(biāo)記,從而形成針對(duì)一個(gè)用戶使用的密鑰;還可以針對(duì)每一個(gè)上傳的文件形成一個(gè)密鑰。在密鑰協(xié)商形成后,接入該下載接入節(jié)點(diǎn)200對(duì)所有接入其的終端都通過此密鑰進(jìn)行鑒權(quán)和許可下載。在此,在服務(wù)器100和下載接入節(jié)點(diǎn)200之間可以通過上述的多種方式協(xié)商形成生成的密鑰,在此不做限制。
[0124]具體來說,所述方法,參見圖4,在所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù)之前,還包括:
[0125]S100A、所述服務(wù)器獲取所述上傳文件的文件參數(shù),生成所述文件的原始下載鏈接。
[0126]在分布式存儲(chǔ)系統(tǒng)I獲取上傳文件后,會(huì)對(duì)上傳文件進(jìn)行存儲(chǔ),并同時(shí)存儲(chǔ)該上傳文件的文件參數(shù),該文件參數(shù)可以標(biāo)識(shí)上傳文件的位置,名稱等信息。在上傳文件存儲(chǔ)完畢后,會(huì)根據(jù)上傳文件的文件參數(shù)生成標(biāo)識(shí)該位置的原始下載鏈接。
[0127]所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù),包括:
[0128]3101、所述服務(wù)器獲取設(shè)置的下載權(quán)限;
[0129]3102、所述服務(wù)器根據(jù)所述下載權(quán)限生成訪問控制列表。
[0130]服務(wù)器100在獲取下載權(quán)限后,根據(jù)下載權(quán)限生成一個(gè)訪問控制列表,在該訪問控制列表中直接標(biāo)識(shí)出存在哪些下載權(quán)限。
[0131]3103、所述服務(wù)器根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù)。
[0132]在生成訪問控制列表后,服務(wù)器100根據(jù)第一密鑰對(duì)訪問控制列表進(jìn)行可逆加密。在進(jìn)行可逆加密之前,服務(wù)器100會(huì)先對(duì)生產(chǎn)的訪問控制列表進(jìn)行壓縮,將訪問控制列表轉(zhuǎn)換成二進(jìn)制的數(shù)據(jù)。在轉(zhuǎn)換完成后,根據(jù)服務(wù)器100和下載接入節(jié)點(diǎn)200之間約定的第一密鑰對(duì)轉(zhuǎn)換形成的二進(jìn)制的數(shù)據(jù)進(jìn)行可逆加密。此處的可逆加密指根據(jù)第一密鑰對(duì)二進(jìn)制數(shù)據(jù)進(jìn)行邏輯運(yùn)算,這樣一來,使不知道密鑰的人無法解析出訪問控制列表。其中,在進(jìn)行加密時(shí)所使用的邏輯運(yùn)算可以根據(jù)現(xiàn)有的方式進(jìn)行,在此不再贅述。
[0133]在完成訪問控制列表的加密后,服務(wù)器100對(duì)加密后的訪問控制列表轉(zhuǎn)碼,從而形成適用于通信的訪問控制列表參數(shù)。
[0134]3104、所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值。
[0135]所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0136]在完成轉(zhuǎn)碼并生成訪問控制列表參數(shù)之后,基于約定的第二密鑰根據(jù)散列算法對(duì)原始下載鏈接中的(1)111^01-111 1?680111~06 I(16111:1 61',通用資源標(biāo)識(shí)符)、訪問控制列表參數(shù)進(jìn)行散列。在散列之后,會(huì)形成一個(gè)散列值。通過形成的散列值,可以判斷訪問控制列表參數(shù)是否被惡意修改。此處的散列算法,一般采用105 (168821865,內(nèi)容摘要算法)和3撤-1 1,安全散列算法),當(dāng)然所采用的散列算法不僅限于上述兩種,也可以通過其他的散列算法根據(jù)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列。
[0137]在這個(gè)過程中,在進(jìn)行散列時(shí),該散列的對(duì)象是原始下載鏈接的現(xiàn)1、訪問控制列表參數(shù)和服務(wù)器100與下載接入節(jié)點(diǎn)200之間約定的第二密鑰。該散列的對(duì)象中的也可以換為其他,比如等。因?yàn)樵谶M(jìn)行散列時(shí),散列的對(duì)象是可以根據(jù)實(shí)際的需要進(jìn)行設(shè)置的,所以散列的對(duì)象也不限于此。但是需要說明的是,因?yàn)樵谶M(jìn)行下載請(qǐng)求時(shí),域名可能出現(xiàn)變化,也可能基于多種協(xié)議,例如仏如協(xié)議或111:1:1)8協(xié)議,這些的不同都會(huì)導(dǎo)致11此的不同,然而,上面的情況中,中的口—般是不會(huì)改變的,所以在進(jìn)行散列運(yùn)算時(shí),優(yōu)選的還是將現(xiàn)1、訪問控制列表參數(shù)和第二密鑰作為對(duì)象。
[0138]在完成生成散列值后,服務(wù)器100將原始下載鏈接、訪問控制列表參數(shù)和散列值進(jìn)行拼接,從而形成最終下載鏈接。當(dāng)其他用戶通過瀏覽器進(jìn)行下載時(shí),則可以對(duì)用戶所發(fā)布的最終下載鏈接進(jìn)行復(fù)制,并粘貼到瀏覽器的地址欄以訪問分布式存儲(chǔ)系統(tǒng)1進(jìn)行文件的下載。
[0139]可選的,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0140]所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
[0141]在訪問控制列表中包含至少一個(gè)控制項(xiàng)。例如,可以包括允許/禁止下載的請(qǐng)求源、允許/禁止下載的客戶端、允許/禁止下載的IP段和允許下載的有效期中的至少一項(xiàng),當(dāng)然,除了上面所提供的控制項(xiàng)外,還可以包括其他的控制項(xiàng),控制項(xiàng)的種類和個(gè)數(shù)可以根據(jù)用戶的實(shí)際需求進(jìn)行增減。
[0142]在用戶設(shè)置完成下載權(quán)限,并以此生成了訪問控制列表后,服務(wù)器100可以對(duì)控制項(xiàng)進(jìn)行逐條拆分,形成了該訪問控制列表所對(duì)應(yīng)的各個(gè)控制項(xiàng)。
[0143]服務(wù)器100針對(duì)每一個(gè)控制項(xiàng)進(jìn)行可逆加密,并通過轉(zhuǎn)碼生成至少一個(gè)控制項(xiàng)參數(shù)。
[0144]在生成了至少一個(gè)控制項(xiàng)參數(shù)后,通過規(guī)定方式進(jìn)行拼接,形成至少一個(gè)控制項(xiàng)參數(shù)的字符串。該規(guī)定方式可以為升序、降序或其他約定好的方式,在此不做限制。
[0145]通過預(yù)先將訪問控制列表進(jìn)行拆分,可以省去用戶未設(shè)置下載權(quán)限的項(xiàng)目,例如僅設(shè)置允許下載的有效期,那么在傳輸過程中則無需包含其他的下載權(quán)限所對(duì)應(yīng)的控制項(xiàng)參數(shù),在進(jìn)彳丁鑒權(quán)時(shí)也可以進(jìn)一步的提尚鑒權(quán)的速度。
[0146]在完成各個(gè)控制項(xiàng)的可逆加密后,服務(wù)器100對(duì)原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值進(jìn)行拼接,形成下載鏈接。
[0147]相對(duì)應(yīng)的,在步驟S112中進(jìn)行下載鏈接的發(fā)送時(shí),在定制的下載請(qǐng)求的HTTP頭部中,可以增加多個(gè)項(xiàng),每一個(gè)項(xiàng)對(duì)應(yīng)訪問控制列表中的一個(gè)控制項(xiàng)。在進(jìn)行下載請(qǐng)求時(shí),將獲取的加密后的至少一個(gè)控制項(xiàng)加載到根據(jù)下載請(qǐng)求的HTTP頭部,并將其發(fā)送到下載接入節(jié)點(diǎn)200進(jìn)行鑒權(quán)。
[0148]對(duì)于服務(wù)器100和下載接入節(jié)點(diǎn)200之間所協(xié)商生成的密鑰,如果長(zhǎng)時(shí)間使用相同的密鑰,則提高了該密鑰被破解的可能性。為了進(jìn)一步提高密鑰的安全性,所述方法,還包括:
[0149]S105、當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),所述服務(wù)器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0150]通過設(shè)定預(yù)定時(shí)間閾值,例如一天,一個(gè)星期,或者一個(gè)月,并設(shè)置當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),服務(wù)器100和下載接入節(jié)點(diǎn)200再一次地進(jìn)行協(xié)商,對(duì)密鑰進(jìn)行更新,在更新時(shí),也可以設(shè)置只更新第一密鑰和第二密鑰中的一個(gè),或全部進(jìn)行更新。
[0151]本發(fā)明公開了一種分布式存儲(chǔ)系統(tǒng)中的文件下載方法,服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0152]另外,因?yàn)樵诂F(xiàn)有技術(shù)中,在進(jìn)行鑒權(quán)時(shí),需要進(jìn)行下載接入節(jié)點(diǎn)和服務(wù)器之間的進(jìn)行通信以完成鑒權(quán),所以在通信的過程中則有可能出現(xiàn)下載接入節(jié)點(diǎn)和服務(wù)器之間的網(wǎng)絡(luò)不通而導(dǎo)致下載異常的情況。這樣一來,通過本發(fā)明上述方法,直接通過下載接入節(jié)點(diǎn)進(jìn)行鑒權(quán),則可以省去下載接入節(jié)點(diǎn)和服務(wù)器之間的通信的過程,從而避免網(wǎng)絡(luò)不通的情況下出現(xiàn)的下載異常,提高了分布式存儲(chǔ)系統(tǒng)的可靠性。
[0153]并且,通過上述方法進(jìn)行鑒權(quán)時(shí),下載接入節(jié)點(diǎn)也無需將訪問控制列表參數(shù)進(jìn)行緩存,而是通過從下載請(qǐng)求中獲取訪問控制列表參數(shù)和下載請(qǐng)求中的下載參數(shù)進(jìn)行鑒權(quán),這樣一來,也節(jié)省了下載接入節(jié)點(diǎn)所消耗的內(nèi)存資源。
[0154]與上面所描述的、對(duì)應(yīng)于服務(wù)器100的一種文件下載方法,下面以下載接入節(jié)點(diǎn)200為例進(jìn)行一種文件下載方法的描述,所述分布式存儲(chǔ)系統(tǒng)1,參見圖1,包括服務(wù)器100和下載接入節(jié)點(diǎn)200 ;
[0155]所述方法,參見圖5,包括:
[0156]3200、所述下載接入節(jié)點(diǎn)接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求。
[0157]3210、所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0158]所述下載鏈接中包含由所述服務(wù)器100根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù)。
[0159]在下載接入節(jié)點(diǎn)200接收到該下載請(qǐng)求后,對(duì)下載請(qǐng)求進(jìn)行解碼,獲取下載請(qǐng)求中關(guān)于終端的下載參數(shù)和訪問控制列表參數(shù)。因?yàn)樵谙螺d請(qǐng)求中,下載參數(shù)是根據(jù)肌1?協(xié)議附加在其中的,并沒有基于密鑰進(jìn)行加密,下載接入節(jié)點(diǎn)200可以直接獲取下載參數(shù)。該下載參數(shù)中還包含有終端的請(qǐng)求源、所使用的客戶端、I?段和下載時(shí)間等信息,因?yàn)樵撓螺d請(qǐng)求是根據(jù)肌1?協(xié)議生成的,所以在下載請(qǐng)求中所包含的內(nèi)容可以參考現(xiàn)有肌1?協(xié)議中的下載請(qǐng)求,在此不再贅述。
[0160]在此,需要說明的是,在終端300發(fā)送下載請(qǐng)求時(shí),可以通過瀏覽器進(jìn)行下載請(qǐng)求,也可以通過在終端300上預(yù)先安裝的客戶端進(jìn)行。
[0161]在下載接入節(jié)點(diǎn)200獲取了下載參數(shù)和訪問控制列表之后,根據(jù)訪問控制列表中所記載的下載權(quán)限對(duì)下載參數(shù)進(jìn)行鑒權(quán)。
[0162]3220、所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0163]在下載請(qǐng)求滿足下載權(quán)限時(shí),則終端300可以進(jìn)行文件的下載,在下載請(qǐng)求不滿足下載權(quán)限時(shí),例如出現(xiàn)了超出用戶所設(shè)置的時(shí)限,通過其他網(wǎng)站發(fā)送下載請(qǐng)求或通過黑名單中的客戶端進(jìn)行下載等情況,則無法進(jìn)行文件下載。
[0164]當(dāng)終端的下載參數(shù)所設(shè)置的所有下載權(quán)限時(shí),則會(huì)通過下載接入節(jié)點(diǎn)200對(duì)于終端的鑒權(quán),此時(shí),下載接入節(jié)點(diǎn)200可以根據(jù)下載請(qǐng)求中包含的上傳文件的原始下載鏈接獲取存儲(chǔ)于緩存服務(wù)器的上傳文件,并將該上傳文件發(fā)送給終端,以完成文件下載的過程。
[0165]此時(shí),下載接入節(jié)點(diǎn)200根據(jù)預(yù)先與服務(wù)器100約定的密鑰對(duì)下載請(qǐng)求進(jìn)行解密和完整性校驗(yàn),從而獲取在下載請(qǐng)求中所包含的訪問控制列表。
[0166]進(jìn)一步的,在服務(wù)器100生成下載鏈接的過程中,為了保證訪問控制列表參數(shù)的保密性,還會(huì)對(duì)下載鏈接進(jìn)行加密。相對(duì)應(yīng)的,下載接入節(jié)點(diǎn)200也需要根據(jù)預(yù)先與服務(wù)器100約定的密鑰對(duì)下載請(qǐng)求進(jìn)行解密和完整性校驗(yàn),從而獲取在下載請(qǐng)求中所包含的訪問控制列表。
[0167]在下載接入節(jié)點(diǎn)200處,進(jìn)行完整性校驗(yàn)和進(jìn)行解密的過程是可以互相調(diào)換的。但是優(yōu)選地會(huì)先進(jìn)行完整性校驗(yàn)的過程,因?yàn)槿绻螺d請(qǐng)求已經(jīng)被人惡意修改,那么即使經(jīng)過解密后獲取的訪問控制列表也無法繼續(xù)使用。這樣一來,先進(jìn)行完整性校驗(yàn)再進(jìn)行解密則可以保證下載接入節(jié)點(diǎn)200可以更有效地進(jìn)行下載請(qǐng)求的鑒權(quán)。
[0168]具體來說,參見圖6,所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán),包括:
[0169]S211、所述下載接入節(jié)點(diǎn)根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性。
[0170]所述原始下載鏈接由所述服務(wù)器100根據(jù)上傳文件的文件參數(shù)生成,該文件參數(shù)一般包含上傳文件的位置、名稱、時(shí)間等相關(guān)信息。在分布式存儲(chǔ)系統(tǒng)中,該在完成上傳文件的上傳后,會(huì)直接生成。所述散列值由所述服務(wù)器100對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成。
[0171]在下載接入節(jié)點(diǎn)200獲取下載請(qǐng)求中的下載參數(shù),并對(duì)下載請(qǐng)求中進(jìn)行解析,獲取其中的原始下載鏈接、訪問控制列表參數(shù)和散列值,其中,散列值是由服務(wù)器100根據(jù)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算后形成的,該散列值用于判斷訪問控制列表參數(shù)是否被他人惡意修改。在進(jìn)行散列運(yùn)算的過程中,會(huì)使用散列算法,一般采用MD5和SHA-1,當(dāng)然所采用的散列算法不僅限于上述兩種,也可以通過其他的散列算法對(duì)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算。
[0172]因?yàn)樯⒘兄凳菍?duì)原始下載鏈接的UR1、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算后唯一地形成的值,所以當(dāng)有人對(duì)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰中的任意一個(gè)進(jìn)行改動(dòng)時(shí),則無法通過完整性校驗(yàn)。
[0173]S212、當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行下載。
[0174]下載接入節(jié)點(diǎn)200根據(jù)已經(jīng)獲取的散列值,對(duì)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰進(jìn)行校驗(yàn)后,會(huì)得到一個(gè)校驗(yàn)結(jié)果。當(dāng)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰中的至少一個(gè)被修改時(shí),無法通過完整性校驗(yàn)。那么,在被篡改的情況下,下載接入節(jié)點(diǎn)200會(huì)告知終端無法完成下載過程。
[0175]S213、當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表。
[0176]當(dāng)所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),則該下載請(qǐng)求便可以通過完整性校驗(yàn)。此后,下載接入節(jié)點(diǎn)200對(duì)訪問控制列表參數(shù)進(jìn)行解碼,從而獲取根據(jù)第一密鑰進(jìn)行可逆加密后的訪問控制列表。
[0177]下載接入節(jié)點(diǎn)200根據(jù)與服務(wù)器100約定的第一密鑰,對(duì)可逆加密后的訪問控制列表進(jìn)行解密,即根據(jù)第一密鑰的邏輯運(yùn)算的逆運(yùn)算,此處的邏輯運(yùn)算應(yīng)與服務(wù)器100的邏輯運(yùn)算相對(duì)應(yīng)。逆運(yùn)算后,訪問控制列表呈二進(jìn)制的數(shù)據(jù),此時(shí),還需要進(jìn)行該二進(jìn)制數(shù)據(jù)的解壓,這樣一來,便可以獲取包含下載權(quán)限的訪問控制列表。
[0178]S214、所述下載接入節(jié)點(diǎn)通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0179]鑒權(quán)過程與步驟S210中所描述的相類似,根據(jù)訪問控制列表中所限定的下載權(quán)限對(duì)下載參數(shù)進(jìn)行逐一對(duì)比,以判斷發(fā)送下載請(qǐng)求的終端是否滿足上傳文件的下載權(quán)限。
[0180]根據(jù)鑒權(quán)過程,下載接入節(jié)點(diǎn)200會(huì)將鑒權(quán)結(jié)果發(fā)送給終端,以告知其是否可以進(jìn)行上傳文件的下載。具體來說,所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端,包括:
[0181]S221、當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行上傳文件的下載;
[0182]或者,
[0183]S222、當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0184]當(dāng)下載參數(shù)中有一項(xiàng)未滿足訪問控制列表中的下載權(quán)限時(shí),則終端無權(quán)下載該上傳文件。此時(shí),下載接入節(jié)點(diǎn)200會(huì)通知終端無法完成下載。
[0185]如果下載參數(shù)全部滿足訪問控制列表中的下載權(quán)限時(shí),則可知終端在允許的下載權(quán)限之內(nèi),可以完成下載。此時(shí),下載接入節(jié)點(diǎn)200可以根據(jù)原始下載鏈接找到位于緩存服務(wù)器中的上傳文件,并將上傳文件轉(zhuǎn)發(fā)給終端,使終端完成下載過程。
[0186]另外,訪問控制列表參數(shù),包括至少一個(gè)控制項(xiàng)參數(shù),這樣一來,則需要逐個(gè)控制項(xiàng)參數(shù)進(jìn)行解密,從而獲取對(duì)應(yīng)的控制項(xiàng),根據(jù)這些控制項(xiàng)便可以獲取訪問控制列表。因?yàn)?,通過預(yù)先將訪問控制列表進(jìn)行拆分,可以省去用戶未設(shè)置下載權(quán)限的項(xiàng)目,例如僅設(shè)置允許下載的有效期,那么在傳輸過程中則無需包含其他的下載權(quán)限所對(duì)應(yīng)的控制項(xiàng)參數(shù),在進(jìn)彳丁鑒權(quán)時(shí)也可以進(jìn)一步的提尚鑒權(quán)的速度。
[0187]需要說明的是,所述散列值由所述服務(wù)器根據(jù)所述原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和第二密鑰進(jìn)行散列后形成。在進(jìn)行解碼時(shí),下載接入節(jié)點(diǎn)200針對(duì)每個(gè)控制項(xiàng)參數(shù)進(jìn)行,從而生成對(duì)應(yīng)的至少一個(gè)加密后的控制項(xiàng)。下載接入節(jié)點(diǎn)200根據(jù)所已經(jīng)獲取了的至少一個(gè)控制項(xiàng),整合生成訪問控制列表。
[0188]因?yàn)樵谙螺d請(qǐng)求中,訪問控制列表被拆分成了多個(gè)控制項(xiàng)進(jìn)行可逆加密,所以在進(jìn)行解密時(shí),下載接入節(jié)點(diǎn)200也是針對(duì)每一個(gè)加密后的控制項(xiàng)進(jìn)行,這樣一來便可以獲取訪問控制列表中的至少一個(gè)控制項(xiàng)。
[0189]此時(shí),下載鏈接由原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值進(jìn)行拼接而成,并且在對(duì)下載鏈接進(jìn)行拆解的過程中,需要逐個(gè)拆分出每一個(gè)控制項(xiàng)參數(shù),以進(jìn)行完整性校驗(yàn)、解碼、解密等流程。
[0190]與服務(wù)器100中的流程相對(duì)應(yīng)的,為了進(jìn)一步提高密鑰的安全性,下載接入節(jié)點(diǎn)200所執(zhí)行的文件下載方法中,還可以設(shè)定一個(gè)預(yù)定時(shí)間閾值,例如一天、一個(gè)星期或一個(gè)月等,并設(shè)置當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),使下載接入節(jié)點(diǎn)200與服務(wù)器100再一次地進(jìn)行協(xié)商,對(duì)密鑰進(jìn)行更新,該密鑰包括第一密鑰和第二密鑰中的至少一個(gè)。
[0191]當(dāng)然,對(duì)于密鑰還可以通過以下幾種方式協(xié)商形成。密鑰可以在分布式存儲(chǔ)系統(tǒng)I建立的時(shí)候,通過下載接入節(jié)點(diǎn)200和服務(wù)器100之間協(xié)商形成;也可以針對(duì)每一個(gè)使用分布式存儲(chǔ)系統(tǒng)I的用戶設(shè)置密鑰,即在用戶登陸分布式存儲(chǔ)系統(tǒng)I的時(shí)候,通過登陸時(shí)的用戶信息進(jìn)行記錄,從而形成針對(duì)一個(gè)用戶使用的密鑰;還可以針對(duì)每一個(gè)上傳文件形成一個(gè)密鑰。在此,在下載接入節(jié)點(diǎn)200和服務(wù)器100之間可以通過上述的多種方式協(xié)商形成生成的密鑰,在此不做限制。
[0192]本發(fā)明公開了一種文件下載方法,服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0193]為了本領(lǐng)域技術(shù)人員更好地理解本發(fā)明提供的文件下載方法的技術(shù)方案,下面通過具體的實(shí)施例對(duì)本發(fā)明提供的文件下載方法進(jìn)行詳細(xì)說明。
[0194]在本發(fā)明實(shí)施例中,分布式存儲(chǔ)系統(tǒng)2,如圖7所示,包括中心服務(wù)器110和接入節(jié)點(diǎn)210 ;用戶通過第一終端310八上的瀏覽器訪問中心服務(wù)器進(jìn)行上傳文件的上傳、設(shè)置下載權(quán)限,其他用戶通過第二終端3108進(jìn)行下載。
[0195]本實(shí)施例中,文件下載方法,如圖8所示,包括:
[0196]310、中心服務(wù)器和接入節(jié)點(diǎn)協(xié)商生成第一密鑰和第二密鑰。
[0197]在分布式存儲(chǔ)系統(tǒng)2建立時(shí),中心服務(wù)器110和接入節(jié)點(diǎn)210之間協(xié)商生成用于加密和解密的第一密鑰和第二密鑰。
[0198]311、第一終端上傳用戶需要進(jìn)行共享的上傳文件至中心服務(wù)器,中心服務(wù)器對(duì)上傳文件進(jìn)行存儲(chǔ)并生成原始下載鏈接。
[0199]用戶在瀏覽器的頁(yè)面中選擇需要上傳的上傳文件,被選中的上傳文件上傳至接入節(jié)點(diǎn)210進(jìn)行存儲(chǔ),并生成文件參數(shù),根據(jù)上傳文件的文件參數(shù)生成原始下載鏈接。
[0200]312、用戶設(shè)置上傳文件的下載權(quán)限,中心服務(wù)器根據(jù)下載權(quán)限生成訪問控制列表。
[0201]用戶通過終端310八進(jìn)行下載權(quán)限的設(shè)置,即設(shè)置請(qǐng)求源的黑/白名單、允許下載的客戶端的黑/白名單、I?段的黑/白名單和允許下載的有效期。中心服務(wù)器110獲取該下載權(quán)限,并根據(jù)下載權(quán)限生成并存儲(chǔ)訪問控制列表。
[0202]313、中心服務(wù)器對(duì)訪問控制列表進(jìn)行壓縮。
[0203]中心服務(wù)器110在生成訪問控制列表之后,對(duì)該訪問控制列表進(jìn)行壓縮,生成二進(jìn)制的字符串。
[0204]314、中心服務(wù)器根據(jù)第一密鑰對(duì)壓縮后的訪問控制列表進(jìn)行可逆加密。
[0205]中心服務(wù)器110根據(jù)第一密鑰與壓縮后的訪問控制列表而生成的二進(jìn)制字符串進(jìn)行邏輯運(yùn)算,形成加密后的訪問控制列表。
[0206]315、中心服務(wù)器對(duì)加密后的訪問控制列表進(jìn)行轉(zhuǎn)碼,生成訪問控制列表參數(shù)。
[0207]中心服務(wù)器110將加密后的訪問控制列表轉(zhuǎn)換成適用于通信的訪問控制列表參數(shù)。
[0208]316、中心服務(wù)器根據(jù)原始下載鏈接、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算,獲取散列值。
[0209]中心服務(wù)器110根據(jù)3撤-1算法對(duì)原始下載鏈接的現(xiàn)1、訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算,獲得散列值。
[0210]317、中心服務(wù)器將原始下載鏈接、訪問控制列表參數(shù)和散列值進(jìn)行拼接,形成下載鏈接,并在第一終端上顯示。
[0211]中心服務(wù)器110將生成的原始下載鏈接、訪問控制列表參數(shù)和散列值進(jìn)行拼接,形成下載鏈接,并將該下載鏈接發(fā)送給第一終端310八進(jìn)行顯示。
[0212]S18、用戶復(fù)制下載鏈接,并在互聯(lián)網(wǎng)上進(jìn)行發(fā)布。
[0213]用戶將終端310A上所顯示的下載鏈接復(fù)制下來,并根據(jù)自己的喜好在互聯(lián)網(wǎng)上發(fā)布該下載鏈接。
[0214]S19、其他用戶的第二終端根據(jù)下載鏈接形成下載請(qǐng)求。
[0215]其他用戶根據(jù)其使用的第二終端310B對(duì)互聯(lián)網(wǎng)上發(fā)布的下載鏈接進(jìn)行復(fù)制,并在瀏覽器的地址欄中粘貼并訪問該下載鏈接,以進(jìn)行下載請(qǐng)求。
[0216]S20、第二終端將該下載請(qǐng)求發(fā)送至接入節(jié)點(diǎn)。
[0217]S21、接入節(jié)點(diǎn)從下載請(qǐng)求中獲取下載參數(shù)、原始下載鏈接、訪問控制列表的訪問控制列表參數(shù)和散列值。
[0218]第二終端310B將下載請(qǐng)求發(fā)送至接入節(jié)點(diǎn)210,接入節(jié)點(diǎn)210從下載請(qǐng)求中獲取下載參數(shù)、原始下載鏈接、訪問控制列表參數(shù)和散列值。
[0219]該下載參數(shù)包括下載請(qǐng)求的請(qǐng)求源、IP段和請(qǐng)求時(shí)間等信息。
[0220]S22、接入節(jié)點(diǎn)根據(jù)散列值判斷原始下載鏈接、訪問控制列表參數(shù)和第二密鑰拼接形成的下載鏈接是否滿足完整性校驗(yàn)。
[0221]通過完整性校驗(yàn),可以使接入節(jié)點(diǎn)確定是否有人對(duì)下載鏈接進(jìn)行了惡意修改。
[0222]如果未滿足完整性校驗(yàn)則向終端310B返回錯(cuò)誤代碼,提示其無法訪問或無法完成下載。
[0223]如果滿足完整性校驗(yàn),則進(jìn)行步驟S23。
[0224]S23、接入節(jié)點(diǎn)對(duì)訪問控制列表參數(shù)進(jìn)行解碼,生成加密后的訪問控制列表。
[0225]S24、接入節(jié)點(diǎn)根據(jù)第一密鑰對(duì)加密后的訪問控制列表進(jìn)行解密并整合生成訪問控制列表。
[0226]完成完整性校驗(yàn)后,接入節(jié)點(diǎn)210根據(jù)第一密鑰進(jìn)行加密后的訪問控制列表的逆運(yùn)算,生成包含有用戶設(shè)置的下載權(quán)限的訪問控制列表。
[0227]S25、接入節(jié)點(diǎn)根據(jù)訪問控制列表中所包含的下載權(quán)限和下載請(qǐng)求中的下載參數(shù)判斷下載請(qǐng)求是否滿足下載文件的條件。
[0228]接入節(jié)點(diǎn)210對(duì)下載權(quán)限和下載參數(shù)進(jìn)行比較,當(dāng)下載參數(shù)里的請(qǐng)求源、IP段和下載時(shí)間任意一項(xiàng)不符合用戶在下載權(quán)限中的設(shè)置時(shí),則丟棄該下載請(qǐng)求,并向終端310B返回鑒權(quán)未通過的信息,無法進(jìn)行下載。
[0229]當(dāng)所有下載參數(shù)都滿足下載權(quán)限時(shí),則進(jìn)行步驟S26。
[0230]S26、接入節(jié)點(diǎn)向中心服務(wù)器請(qǐng)求文件,中心服務(wù)器通過接入節(jié)點(diǎn)將上傳文件發(fā)送給其他用戶所使用的第二終端。
[0231]通過上述過程便可以完成了上傳文件的共享和下載。在本實(shí)施例中,通過中心服務(wù)器和接入節(jié)點(diǎn)設(shè)置第一密鑰進(jìn)行加密,通過第二密鑰進(jìn)行完整性校驗(yàn),這樣一來,鑒權(quán)的工作便可以在接入節(jié)點(diǎn)200處完成,而無需通過中心服務(wù)器進(jìn)行下載請(qǐng)求的鑒權(quán),提高了鑒權(quán)速度和下載文件時(shí)的速度。
[0232]可選擇的,中心服務(wù)器110對(duì)原始下載鏈接、訪問控制列表參數(shù)和散列值進(jìn)行發(fā)布時(shí),則可以通過,即無需執(zhí)行步驟S17、步驟S18和步驟S19,而是在步驟S16之后,如圖9所示,還包括:
[0233]S271、中心服務(wù)器對(duì)原始下載鏈接、訪問控制列表參數(shù)和散列值進(jìn)行緩存并生成與文件相關(guān)的下載項(xiàng)目。
[0234]中心服務(wù)器110在分布式存儲(chǔ)系統(tǒng)2所對(duì)應(yīng)的網(wǎng)頁(yè)上生成一個(gè)關(guān)于用戶上傳的文件的下載項(xiàng)目,并且建立下載項(xiàng)目與原始下載鏈接、訪問控制列表參數(shù)和散列值之間的關(guān)聯(lián)。
[0235]當(dāng)其他用戶根據(jù)這一頁(yè)面選擇該下載項(xiàng)目時(shí),通過終端310B上的客戶端向中心服務(wù)器發(fā)送下載鏈接獲取請(qǐng)求。
[0236]S272、中心服務(wù)器接收其他用戶的第二終端發(fā)送的下載鏈接獲取請(qǐng)求,將存儲(chǔ)的原始下載鏈接、訪問控制列表參數(shù)和散列值發(fā)送給其他用戶終端。
[0237]對(duì)于接入節(jié)點(diǎn)210而言,因?yàn)榈诙K端310B分別接收到原始下載鏈接、訪問控制列表參數(shù)和散列值,那么就無需用戶在互聯(lián)網(wǎng)上發(fā)布下載鏈接。另外,通過客戶端進(jìn)行文件下載時(shí),訪問控制列表參數(shù)和散列值都會(huì)設(shè)置在HTTP協(xié)議的下載請(qǐng)求的頭部,這個(gè)下載請(qǐng)求的頭部可以根據(jù)需要認(rèn)為的進(jìn)行定制,那么其中就在訪問控制列表中便可以增加更多的控制項(xiàng),從而使下載權(quán)限的設(shè)置更加多樣化。
[0238]在本發(fā)明實(shí)施例中,訪問控制列表中包含有至少一個(gè)控制項(xiàng)。另一種分布式存儲(chǔ)系統(tǒng)2,參見圖10,包括:
[0239]S10、中心服務(wù)器和接入節(jié)點(diǎn)協(xié)商生成第一密鑰和第二密鑰。
[0240]在分布式存儲(chǔ)系統(tǒng)2建立時(shí),中心服務(wù)器110和接入節(jié)點(diǎn)210之間協(xié)商生成用于加密和解密的第一密鑰和第二密鑰。
[0241]S11、第一終端上傳用戶需要進(jìn)行共享的上傳文件至中心服務(wù)器,中心服務(wù)器對(duì)上傳文件進(jìn)行存儲(chǔ)并生成原始下載鏈接。
[0242]用戶在瀏覽器的頁(yè)面中選擇需要上傳的上傳文件,被選中的上傳文件上傳至接入節(jié)點(diǎn)210進(jìn)行存儲(chǔ),并生成文件參數(shù),根據(jù)上傳文件的文件參數(shù)生成原始下載鏈接。
[0243]S12、用戶設(shè)置上傳文件的下載權(quán)限,中心服務(wù)器根據(jù)下載權(quán)限生成訪問控制列表。
[0244]用戶通過終端310A進(jìn)行下載權(quán)限的設(shè)置,即設(shè)置請(qǐng)求源的黑/白名單、允許下載的客戶端的黑/白名單、IP段的黑/白名單和允許下載的有效期。中心服務(wù)器110獲取該下載權(quán)限,并根據(jù)下載權(quán)限生成并存儲(chǔ)訪問控制列表。
[0245]S12a、中心服務(wù)器逐項(xiàng)拆分訪問控制列表,形成至少一個(gè)控制項(xiàng),其中一個(gè)控制項(xiàng)對(duì)應(yīng)一種下載權(quán)限,例如一個(gè)控制項(xiàng)為請(qǐng)求源的黑/白名單,那么對(duì)應(yīng)的便是用戶所設(shè)置的關(guān)于請(qǐng)求源的下載權(quán)限。
[0246]相對(duì)應(yīng)的中心服務(wù)器110所執(zhí)行的步驟S13-S17中,分別具體為:
[0247]S13a、中心服務(wù)器對(duì)至少一個(gè)控制項(xiàng)進(jìn)行壓縮。
[0248]S14a、中心服務(wù)器根據(jù)第一密鑰對(duì)壓縮后的至少一個(gè)控制項(xiàng)進(jìn)行可逆加密。
[0249]S15a、中心服務(wù)器對(duì)至少一個(gè)加密后的控制項(xiàng)進(jìn)行轉(zhuǎn)碼,生成至少一個(gè)控制項(xiàng)參數(shù)。
[0250]S16a、中心服務(wù)器根據(jù)原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和第二密鑰進(jìn)行散列運(yùn)算,獲取散列值。
[0251]S17a、中心服務(wù)器將原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值進(jìn)行拼接,形成下載鏈接,并在第一終端上顯示。
[0252]318、用戶復(fù)制下載鏈接,并在互聯(lián)網(wǎng)上進(jìn)行發(fā)布。
[0253]用戶將終端310八上所顯示的下載鏈接復(fù)制下來,并根據(jù)自己的喜好在互聯(lián)網(wǎng)上發(fā)布該下載鏈接。
[0254]319、其他用戶的第二終端根據(jù)下載鏈接形成下載請(qǐng)求。
[0255]其他用戶根據(jù)其使用的第二終端3108對(duì)互聯(lián)網(wǎng)上發(fā)布的下載鏈接進(jìn)行復(fù)制,并在瀏覽器的地址欄中粘貼并訪問該下載鏈接,以進(jìn)行下載請(qǐng)求。
[0256]820、第二終端將該下載請(qǐng)求發(fā)送至接入節(jié)點(diǎn)。
[0257]對(duì)應(yīng)于接入節(jié)點(diǎn)210所執(zhí)行的步驟322-325,具體為:
[0258]321^1、接入節(jié)點(diǎn)從下載請(qǐng)求中獲取下載參數(shù)、原始下載鏈接、訪問控制列表的至少一個(gè)控制項(xiàng)參數(shù)和散列值。
[0259]322^接入節(jié)點(diǎn)根據(jù)散列值判斷原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和第二密鑰拼接形成的下載鏈接是否滿足完整性校驗(yàn)。
[0260]如果未滿足完整性校驗(yàn)則向終端3108返回錯(cuò)誤代碼,提示其無法訪問或無法完成下載。
[0261]如果滿足完整性校驗(yàn),則進(jìn)行步驟32如。
[0262]3233、接入節(jié)點(diǎn)對(duì)至少一個(gè)控制項(xiàng)參數(shù)進(jìn)行解碼,生成至少一個(gè)加密后的控制項(xiàng)。
[0263]32?、接入節(jié)點(diǎn)根據(jù)第一密鑰對(duì)至少一個(gè)加密后的控制項(xiàng)進(jìn)行解密生成至少一個(gè)控制項(xiàng)并進(jìn)行整合生成訪問控制列表。
[0264]完成完整性校驗(yàn)后,接入節(jié)點(diǎn)210根據(jù)第一密鑰進(jìn)行至少一個(gè)加密后的控制項(xiàng)的逆運(yùn)算,生成至少一個(gè)控制項(xiàng),并對(duì)至少一個(gè)控制項(xiàng)進(jìn)行整合,形成包含有用戶設(shè)置的下載權(quán)限的訪問控制列表。
[0265]通過上述方式,可以省去用戶未設(shè)置下載權(quán)限的項(xiàng)目,例如僅設(shè)置允許下載的有效期,那么在傳輸過程中則無需包含其他的下載權(quán)限所對(duì)應(yīng)的控制項(xiàng)參數(shù),在進(jìn)行鑒權(quán)時(shí)也可以進(jìn)一步的提尚鑒權(quán)的速度。
[0266]在本實(shí)施例中,可選擇的,中心服務(wù)器110可以不對(duì)原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值進(jìn)行拼接和公布,即無需執(zhí)行步驟517&、步驟318和步驟319,而是在步驟816&之后,如圖11所示,還包括:
[0267]327匕、中心服務(wù)器對(duì)原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值進(jìn)行緩存并生成與文件相關(guān)的下載項(xiàng)目。
[0268]32721中心服務(wù)器接收終端發(fā)送的下載鏈接獲取請(qǐng)求,將存儲(chǔ)的原始下載鏈接、至少一個(gè)控制項(xiàng)參數(shù)和散列值發(fā)送給其他用戶的第二終端。
[0269]325、接入節(jié)點(diǎn)根據(jù)訪問控制列表中所包含的下載權(quán)限和下載請(qǐng)求中的下載參數(shù)判斷下載請(qǐng)求是否滿足下載文件的條件。
[0270]接入節(jié)點(diǎn)210對(duì)下載權(quán)限和下載參數(shù)進(jìn)行比較,當(dāng)下載參數(shù)里的請(qǐng)求源、I?段和下載時(shí)間任意一項(xiàng)不符合用戶在下載權(quán)限中的設(shè)置時(shí),則丟棄該下載請(qǐng)求,并向終端3108返回鑒權(quán)未通過的信息,無法進(jìn)行下載。
[0271]當(dāng)所有下載參數(shù)都滿足下載權(quán)限時(shí),則進(jìn)行步驟326。
[0272]326、接入節(jié)點(diǎn)將上傳文件發(fā)送給其他用戶所使用的第二終端。
[0273]通過上述過程便可以完成了上傳文件的共享和下載。在本實(shí)施例中,通過中心服務(wù)器和接入節(jié)點(diǎn)設(shè)置第一密鑰進(jìn)行加密,通過第二密鑰進(jìn)行完整性校驗(yàn),這樣一來,鑒權(quán)的工作便可以在接入節(jié)點(diǎn)200處完成,而無需通過中心服務(wù)器進(jìn)行下載請(qǐng)求的鑒權(quán),提高了鑒權(quán)速度和下載文件時(shí)的速度。
[0274]通過預(yù)先將訪問控制列表進(jìn)行拆分,可以省去用戶未設(shè)置下載權(quán)限的項(xiàng)目,例如僅設(shè)置允許下載的有效期,那么在傳輸過程中則無需包含其他的下載權(quán)限所對(duì)應(yīng)的控制項(xiàng)參數(shù),在進(jìn)彳丁鑒權(quán)時(shí)也可以進(jìn)一步的提尚鑒權(quán)的速度。
[0275]在上述實(shí)施例中,其中的第一密鑰和第二密鑰在生成后,還可以設(shè)置預(yù)定時(shí)間閾值。當(dāng)分布式存儲(chǔ)系統(tǒng)中的計(jì)時(shí)到達(dá)該預(yù)設(shè)時(shí)間閾值的情況下,則通過中心服務(wù)器和接入節(jié)點(diǎn)或CDN之間進(jìn)行再一次的協(xié)商,從而更新第一密鑰和第二密鑰。
[0276]另外,還可以根據(jù)用戶的不同,針對(duì)每一個(gè)用戶協(xié)商生成不同的第一密鑰和第二密鑰。
[0277]與上述一種文件下載方法相對(duì)應(yīng),本發(fā)明還公開了一種中心服務(wù)器和一種下載接入節(jié)點(diǎn)。
[0278]—種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器500,參見圖11,包括:
[0279]接收單元510,用于獲取設(shè)置的下載權(quán)限;
[0280]生成單元520,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù);
[0281]發(fā)送單元530,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
[0282]可選的,所述接收單元510,還用于獲取上傳文件的文件參數(shù);
[0283]所述生成單元520包括:
[0284]生成模塊521,用于根據(jù)下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述上傳文件的原始下載鏈接;
[0285]加密模塊522,用于根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0286]可選的,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0287]所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行可逆加密后形成所述控制項(xiàng)參數(shù)。
[0288]可選的,所述服務(wù)器500還包括協(xié)商單元540 ;
[0289]所述協(xié)商單元540,用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0290]可選的,所述接收單元510,還用于獲取上傳文件時(shí)的用戶信息;
[0291]所述協(xié)商單元540,還用于根據(jù)所述用戶信息,針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
[0292]可選的,所述接收單元510,還用于接收所述終端的下載鏈接獲取請(qǐng)求;
[0293]所述發(fā)送單元530,具體用于將所述下載鏈接發(fā)送給所述終端。
[0294]本發(fā)明公開了一種服務(wù)器,該服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0295]相對(duì)應(yīng)的,本發(fā)明還公開了一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),所述分布式存儲(chǔ)系統(tǒng)還包括服務(wù)器;
[0296]所述下載接入節(jié)點(diǎn)600,參見圖11,包括:
[0297]接收單元610,用于接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù);
[0298]鑒權(quán)單元620,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán);
[0299]發(fā)送單元630,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0300]可選的,所述鑒權(quán)單元620包括解密模塊621和鑒權(quán)模塊622:
[0301]所述解密模塊621,用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0302]所述發(fā)送單元630,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0303]所述鑒權(quán)模塊622,用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0304]可選的,所述發(fā)送單元630,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0305]本發(fā)明公開了一種下載接入節(jié)點(diǎn),服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0306]本發(fā)明還公開了一種分布式存儲(chǔ)系統(tǒng),包括上述的服務(wù)器500和上述的下載接入節(jié)點(diǎn)600。
[0307]本發(fā)明公開了一種服務(wù)器,該服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0308]一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器,參見圖12,包括接收器、處理器和發(fā)送器;
[0309]所述接收器,用于獲取設(shè)置的下載權(quán)限;
[0310]所述處理器,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù);
[0311]所述發(fā)送器,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
[0312]可選的,所述接收器,還用于獲取上傳文件的文件參數(shù);
[0313]所述處理器,具體用于根據(jù)所述下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述文件的原始下載鏈接;根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
[0314]可選的,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng);
[0315]所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
[0316]可選的,所述處理器,還用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),通過所述發(fā)送器和所述接收器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
[0317]可選的,所述接收器,還用于獲取上傳文件時(shí)的用戶信息;
[0318]所述處理器,還用于根據(jù)所述用戶信息,通過所述發(fā)送器和所述接收器針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
[0319]可選的,所述接收器,還用于接收所述終端的下載鏈接獲取請(qǐng)求;
[0320]所述發(fā)送器,具體用于將所述下載鏈接發(fā)送給所述終端。
[0321]本發(fā)明公開了一種服務(wù)器,該服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0322]本發(fā)明還公開一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),參見圖13,包括接收器、處理器和發(fā)送器;
[0323]所述接收器,用于接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù);
[0324]所述處理器,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán);
[0325]所述發(fā)送器,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
[0326]可選的,所述處理器,具體用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0327]所述發(fā)送器,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;
[0328]所述處理器,還用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
[0329]可選的,所述發(fā)送器,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;或者,當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
[0330]本發(fā)明公開了一種下載接入節(jié)點(diǎn),服務(wù)器生成對(duì)下載權(quán)限進(jìn)行限制的訪問控制列表參數(shù),并隨下載鏈接公布所述訪問權(quán)限控制列表參數(shù),當(dāng)終端根據(jù)下載鏈接向下載接入節(jié)點(diǎn)發(fā)送下載請(qǐng)求時(shí),將所獲取的訪問權(quán)限控制列表參數(shù)附加在下載請(qǐng)求中,這樣一來,下載接入節(jié)點(diǎn)便可以根據(jù)該下載請(qǐng)求中的訪問控制列表參數(shù)和下載參數(shù)對(duì)下載請(qǐng)求進(jìn)行鑒權(quán),并將鑒權(quán)結(jié)果告知終端,從而降低服務(wù)器的負(fù)載,提升鑒權(quán)速度和加快文件下載的響應(yīng)速度。
[0331]在本申請(qǐng)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的系統(tǒng)、裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些通信接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
[0332]所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
[0333]另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。
[0334]所述功能如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計(jì)算機(jī)軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:U盤、移動(dòng)硬盤、只讀存儲(chǔ)器(ROM,Read-Only Memory)、隨機(jī)存取存儲(chǔ)器(RAM,Random Access Memory)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
[0335] 以上所述,僅為本發(fā)明的【具體實(shí)施方式】,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本【技術(shù)領(lǐng)域】的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)所述以權(quán)利要求的保護(hù)范圍為準(zhǔn)。
【權(quán)利要求】
1.一種文件下載方法,其特征在于,包括: 服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù); 所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于所述終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,在所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù)之前,還包括: 所述服務(wù)器獲取上傳文件的文件參數(shù),生成所述上傳文件的原始下載鏈接; 所述服務(wù)器獲取設(shè)置的下載權(quán)限,生成所述下載權(quán)限的訪問控制列表參數(shù),包括: 所述服務(wù)器獲取設(shè)置的下載權(quán)限; 所述服務(wù)器根據(jù)所述下載權(quán)限生成訪問控制列表; 所述服務(wù)器根據(jù)與下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù); 所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng); 所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
4.根據(jù)權(quán)利要求2所述的方法,其特征在于,還包括: 當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),所述服務(wù)器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
5.根據(jù)權(quán)利要求2所述的方法,其特征在于,在所述服務(wù)器獲取上傳文件的文件參數(shù),生成所述上傳文件的原始下載鏈接之前,還包括: 所述服務(wù)器獲取上傳文件時(shí)的用戶信息; 所述服務(wù)器根據(jù)所述用戶信息,針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
6.根據(jù)權(quán)利要求1-5任一所述的方法,其特征在于,所述服務(wù)器發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,包括: 所述服務(wù)器接收所述終端的下載鏈接獲取請(qǐng)求; 所述服務(wù)器將所述下載鏈接發(fā)送給所述終端。
7.一種文件下載方法,其特征在于, 下載接入節(jié)點(diǎn)接收終端根據(jù)服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù); 所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán); 所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述下載接入節(jié)點(diǎn)根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán),包括:所述下載接入節(jié)點(diǎn)根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行下載; 當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表;所述下載接入節(jié)點(diǎn)通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,所述下載接入節(jié)點(diǎn)將鑒權(quán)結(jié)果發(fā)送給所述終端,包括: 當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)通知所述終端無法進(jìn)行上傳文件的下載; 或者, 當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),所述下載接入節(jié)點(diǎn)將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
10.一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器,其特征在于,包括: 接收單元,用于獲取設(shè)置的下載權(quán)限; 生成單元,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù); 發(fā)送單元,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
11.根據(jù)權(quán)利要求10所述的服務(wù)器,其特征在于,所述接收單元,還用于獲取上傳文件的文件參數(shù); 所述生成單元包括: 生成模塊,用于根據(jù)所述下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述上傳文件的原始下載鏈接; 加密模塊,用于根據(jù)與下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
12.根據(jù)權(quán)利要求11所述的服務(wù)器,其特征在于,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng); 所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行可逆加密后形成所述控制項(xiàng)參數(shù)。
13.根據(jù)權(quán)利要求11所述的服務(wù)器,其特征在于,還包括協(xié)商單元; 所述協(xié)商單元,用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
14.根據(jù)權(quán)利要求13所述的服務(wù)器,其特征在于,所述接收單元,還用于獲取上傳文件時(shí)的用戶信息; 所述協(xié)商單元,還用于根據(jù)所述用戶信息,針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
15.根據(jù)權(quán)利要求10-14任一所述的服務(wù)器,其特征在于, 所述接收單元,還用于接收所述終端的下載鏈接獲取請(qǐng)求; 所述發(fā)送單元,具體用于將所述下載鏈接發(fā)送給所述終端。
16.一種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),其特征在于,包括: 接收單元,用于接收終端根據(jù)服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù); 鑒權(quán)單元,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán); 發(fā)送單元,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
17.根據(jù)權(quán)利要求16所述的下載接入節(jié)點(diǎn),其特征在于,所述鑒權(quán)單元包括解密模塊和鑒權(quán)模塊; 所述解密模塊,用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表; 所述發(fā)送單元,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表; 所述鑒權(quán)模塊,用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
18.根據(jù)權(quán)利要求17所述的下載接入節(jié)點(diǎn),其特征在于, 所述發(fā)送單元,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;或者,當(dāng)所述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始下載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
19.一種分布式存儲(chǔ)系統(tǒng),其特征在于,包括權(quán)利要求10-15所述的服務(wù)器和權(quán)利要求16-18所述的下載接入節(jié)點(diǎn)。
20.—種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的服務(wù)器,其特征在于,包括接收器、處理器和發(fā)送器; 所述接收器,用于獲取設(shè)置的下載權(quán)限; 所述處理器,用于根據(jù)所述下載權(quán)限生成訪問控制列表參數(shù); 所述發(fā)送器,用于發(fā)布包含所述訪問控制列表參數(shù)的下載鏈接,以便于終端獲取所述下載鏈接并生成包含所述訪問控制列表參數(shù)的下載請(qǐng)求。
21.根據(jù)權(quán)利要求20所述的服務(wù)器,其特征在于, 所述接收器,還用于獲取上傳文件的文件參數(shù); 所述處理器,具體用于根據(jù)所述下載權(quán)限生成訪問控制列表;根據(jù)所述上傳文件的文件參數(shù)生成所述文件的原始下載鏈接;根據(jù)與所述下載接入節(jié)點(diǎn)約定的第一密鑰對(duì)所述訪問控制列表進(jìn)行加密,并形成訪問控制列表參數(shù);對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和與所述下載接入節(jié)點(diǎn)約定的第二密鑰進(jìn)行散列運(yùn)算,生成散列值,所述散列值和所述原始下載鏈接包含于所述下載鏈接中。
22.根據(jù)權(quán)利要求21所述的服務(wù)器,其特征在于,所述訪問控制列表中包含至少一個(gè)控制項(xiàng),所述訪問控制列表參數(shù)中包括至少一個(gè)控制項(xiàng)參數(shù),其中一個(gè)控制項(xiàng)參數(shù)對(duì)應(yīng)一個(gè)控制項(xiàng); 所述控制項(xiàng)參數(shù)由所述控制項(xiàng)在根據(jù)所述第一密鑰進(jìn)行加密后形成。
23.根據(jù)權(quán)利要求21所述的服務(wù)器,其特征在于, 所述處理器,還用于當(dāng)?shù)竭_(dá)預(yù)定時(shí)間閾值時(shí),通過所述發(fā)送器和所述接收器與所述下載接入節(jié)點(diǎn)協(xié)商更新所述第一密鑰和所述第二密鑰。
24.根據(jù)權(quán)利要求23所述的服務(wù)器,其特征在于, 所述接收器,還用于獲取上傳文件時(shí)的用戶信息; 所述處理器,還用于根據(jù)所述用戶信息,通過所述發(fā)送器和所述接收器針對(duì)一個(gè)用戶與所述下載接入節(jié)點(diǎn)協(xié)商生成所述第一密鑰和所述第二密鑰中的至少一個(gè)。
25.根據(jù)權(quán)利要求20-24所述的服務(wù)器,其特征在于, 所述接收器,還用于接收所述終端的下載鏈接獲取請(qǐng)求; 所述發(fā)送器,具體用于將所述下載鏈接發(fā)送給所述終端。
26.—種應(yīng)用于分布式存儲(chǔ)系統(tǒng)的下載接入節(jié)點(diǎn),其特征在于, 所述下載接入節(jié)點(diǎn)包括接收器、處理器和發(fā)送器; 所述接收器,用于接收終端根據(jù)所述服務(wù)器發(fā)布的下載鏈接發(fā)起的下載請(qǐng)求,所述下載鏈接中包含由所述服務(wù)器根據(jù)設(shè)置的下載權(quán)限生成的訪問控制列表參數(shù),所述下載請(qǐng)求中包含所述訪問控制列表參數(shù)和所述終端的下載參數(shù); 所述處理器,用于根據(jù)所述訪問控制列表參數(shù)和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán); 所述發(fā)送器,用于將鑒權(quán)結(jié)果發(fā)送給所述終端。
27.根據(jù)權(quán)利要求26所述的下載接入節(jié)點(diǎn),其特征在于, 所述處理器,具體用于根據(jù)散列值校驗(yàn)原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰的完整性,所述原始下載鏈接由所述服務(wù)器根據(jù)上傳文件的文件參數(shù)生成,所述散列值由所述服務(wù)器對(duì)所述原始下載鏈接、所述訪問控制列表參數(shù)和第二密鑰進(jìn)行散列運(yùn)算生成;根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表; 所述發(fā)送器,還用于當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中至少一個(gè)被修改時(shí),通知所述終端無法進(jìn)行下載;當(dāng)根據(jù)所述第二密鑰確定所述原始下載鏈接、所述訪問控制列表參數(shù)和所述第二密鑰中未被修改時(shí),所述下載接入節(jié)點(diǎn)根據(jù)與所述服務(wù)器約定的第一密鑰對(duì)所述訪問控制列表參數(shù)進(jìn)行解密,并解析出所述訪問控制列表; 所述處理器,還用于通過所述訪問控制列表和所述下載參數(shù)對(duì)所述下載請(qǐng)求進(jìn)行鑒權(quán)。
28.根據(jù)權(quán)利要求27所述的下載接入節(jié)點(diǎn),其特征在于, 所述發(fā)送器,還用于當(dāng)所述下載參數(shù)未滿足所述訪問控制列表中所包的下載權(quán)限時(shí),通知所述終端無法進(jìn)行所述上傳文件的下載;或者,當(dāng)述下載參數(shù)滿足所述訪問控制列表中所包含的下載權(quán)限時(shí),將所述原始載鏈接所標(biāo)識(shí)的上傳文件發(fā)送給所述終端。
【文檔編號(hào)】H04L29/08GK104471918SQ201480001805
【公開日】2015年3月25日 申請(qǐng)日期:2014年3月24日 優(yōu)先權(quán)日:2014年3月24日
【發(fā)明者】謝青冬, 徐開富, 李曉明 申請(qǐng)人:華為技術(shù)有限公司