亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

DIY七牛前端上傳

Yumenokanata / 1868人閱讀

摘要:我們的項(xiàng)目中有大量的圖片上傳和展示。我們選了七牛作為。這其中一個(gè)比較重要的原因是因?yàn)橹С智岸酥苯由蟼鳌榱酥С智岸松蟼鳎峁┝?。將文件分成個(gè)上傳。需要做如下的操作上傳。具體到的話(huà),是這樣上傳起始的文件內(nèi)容。在內(nèi)部還可以分上傳。

我們的項(xiàng)目中有大量的圖片上傳和展示。我們選了七牛作為CDN。這其中一個(gè)比較重要的原因是因?yàn)閝iniu支持前端直接上傳。動(dòng)輒4-5MB的圖片不用到我們的app server轉(zhuǎn)一圈還是很好的。為了支持前端上傳,qiniu提供了javascript SDK。但是我看了看代碼。實(shí)在是太大了。7000多行javascript啊。真的有必要嗎?有必要嗎?有必要嗎?遂決定DIY一個(gè)。講真,qiniu提供各種各樣SDK。并不推薦直接用REST API來(lái)上傳。關(guān)于A(yíng)PI的調(diào)用也比較簡(jiǎn)單。所以還是費(fèi)了一點(diǎn)力氣。因有此文。

像任何事情一樣,搞定之后覺(jué)得其實(shí)蠻簡(jiǎn)單的。同樣像任何事情一樣,理解了big picture就會(huì)好辦多了。

qiniu為了支持大文件,允許用戶(hù)將文件分塊(block)上傳。再所有的文件塊上傳完成之后,再將所有塊組成一個(gè)完整的文件 - 至少邏輯上是如此。物理存儲(chǔ)如何只有qiniu自己曉得。

我們以一個(gè)2.5MB的文件為例。將文件分成3個(gè)block上傳。blockSize設(shè)為1MB。需要做如下的操作:

上傳block 1。qiniu服務(wù)器返回一個(gè)ctx來(lái)標(biāo)識(shí)這個(gè)block。例如abcd

上傳block 2。qiniu服務(wù)器返回一個(gè)ctx來(lái)標(biāo)識(shí)這個(gè)block。例如efgh

上傳block 3。qiniu服務(wù)器返回一個(gè)ctx來(lái)標(biāo)識(shí)這個(gè)block。例如ijk

告訴qiniu服務(wù)器這個(gè)新文件是有abcd, efghijk 三個(gè)block組成。并給出key。就可以生成文件了。

具體到API的話(huà),是這樣:

POST /mkblk/1048576 上傳起始的1MB文件內(nèi)容。服務(wù)器返回ctx以及其它內(nèi)容。

POST /mkblk/1048576 上傳中間的1MB文件內(nèi)容。服務(wù)器返回ctx以及其它內(nèi)容。

POST /mkblk/524288 上傳最后的0.5MB文件內(nèi)容。服務(wù)器返回ctx已經(jīng)其它內(nèi)容。

POST /mkfile/2621440/key/。創(chuàng)建文件。在POST的body中將上面的三個(gè)ctx依次列出并以逗號(hào)分開(kāi)。這樣文件就產(chǎn)生了。如上例,POST的body的內(nèi)容應(yīng)為:abcd,efgh,ijk

最后補(bǔ)充兩點(diǎn):

文件內(nèi)容的讀取,以及各個(gè)步驟之間的銜接是通過(guò)plupload來(lái)完成的。這個(gè)和官方的SDK也一致。但是代碼量要少的多。

qiniu在block內(nèi)部還可以分chunk上傳。只要用/bput API并指定ctx即可。因?yàn)橛悬c(diǎn)復(fù)雜而且沒(méi)有什么特別的需求(也許是為了超大文件吧),所以沒(méi)有采用。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/79381.html

相關(guān)文章

  • 微信公號(hào)DIY:訓(xùn)練微信聊天機(jī)器人&公號(hào)變身圖片上傳工具

    摘要:使用圖靈機(jī)器人訓(xùn)練之前在對(duì)比聊天機(jī)器人實(shí)現(xiàn)方案的時(shí)候,我試用過(guò)圖靈機(jī)器人,他們號(hào)稱(chēng)中文語(yǔ)境下智能渡最高的機(jī)器人大腦。 上一篇 一小時(shí)搭建微信聊天機(jī)器人 介紹了如何搭建一個(gè)可用的聊天機(jī)器人,但是和機(jī)器人聊完你會(huì)發(fā)現(xiàn),聊天機(jī)器人實(shí)在是太傻了,來(lái)回就那么幾句。這是因?yàn)槲覀兘o聊天機(jī)器人的數(shù)據(jù)太少,他只能在我們給的訓(xùn)練集中找它認(rèn)為最合適的。那么,如何導(dǎo)入更多的訓(xùn)練數(shù)據(jù)呢?我能想到最簡(jiǎn)單的方法是找...

    anonymoussf 評(píng)論0 收藏0
  • 微信公號(hào)DIY:MongoDB 簡(jiǎn)易ORM & 公號(hào)記賬數(shù)據(jù)庫(kù)設(shè)計(jì)

    摘要:然后又介紹了基于的公號(hào)賬本應(yīng)用的數(shù)據(jù)庫(kù)設(shè)計(jì)。歡迎關(guān)注公號(hào)四月試用。 前兩篇 微信公號(hào)DIY 系列: 微信公號(hào)DIY:一小時(shí)搭建微信聊天機(jī)器人 微信公號(hào)DIY:訓(xùn)練聊天機(jī)器人&公號(hào)變身圖片上傳工具 介紹了如何使用搭建&訓(xùn)練聊天機(jī)器人以及讓公號(hào)支持圖片上傳到七牛,把公號(hào)變成一個(gè)七牛圖片上傳客戶(hù)端。這一篇將繼續(xù)開(kāi)發(fā)公號(hào),讓公號(hào)變成一個(gè)更加實(shí)用的工具賬本(理財(cái)從記賬開(kāi)始)。 代碼: 項(xiàng)目代...

    Backache 評(píng)論0 收藏0
  • 微信公號(hào)DIY:MongoDB 簡(jiǎn)易ORM & 公號(hào)記賬數(shù)據(jù)庫(kù)設(shè)計(jì)

    摘要:然后又介紹了基于的公號(hào)賬本應(yīng)用的數(shù)據(jù)庫(kù)設(shè)計(jì)。歡迎關(guān)注公號(hào)四月試用。 前兩篇 微信公號(hào)DIY 系列: 微信公號(hào)DIY:一小時(shí)搭建微信聊天機(jī)器人 微信公號(hào)DIY:訓(xùn)練聊天機(jī)器人&公號(hào)變身圖片上傳工具 介紹了如何使用搭建&訓(xùn)練聊天機(jī)器人以及讓公號(hào)支持圖片上傳到七牛,把公號(hào)變成一個(gè)七牛圖片上傳客戶(hù)端。這一篇將繼續(xù)開(kāi)發(fā)公號(hào),讓公號(hào)變成一個(gè)更加實(shí)用的工具賬本(理財(cái)從記賬開(kāi)始)。 代碼: 項(xiàng)目代...

    DoINsiSt 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<