不得不說(shuō)屡江,目前的云服務(wù)器對(duì)個(gè)人或者小型工程的支持相當(dāng)不友好,專(zhuān)業(yè)名詞太多赛不,產(chǎn)品線(xiàn)太復(fù)雜惩嘉,而打電話(huà)咨詢(xún)也無(wú)果,經(jīng)過(guò)幾天慢慢的梳理對(duì)比踢故,最終敲定了這家和騰訊云有合作的leancloud的TAB(Tencent App Builder)文黎。
先說(shuō)一下自己的需求:需要將自己的結(jié)構(gòu)化數(shù)據(jù)(傳感器采集到的數(shù)字)上傳到云端惹苗,數(shù)據(jù)量不是很大,但是希望能快速開(kāi)發(fā)耸峭,不要有很高的學(xué)習(xí)成本桩蓉。如果你和我一樣,那TAB也很適合你劳闹!
TAB騰訊云鏈接:了解產(chǎn)品詳情頁(yè)面失效了院究,可能是因?yàn)?6年合作之后就沒(méi)有維護(hù)了。但是經(jīng)過(guò)對(duì)比體驗(yàn)本涕,比騰訊云自己的移動(dòng)開(kāi)發(fā)平臺(tái)MobileLine要更加友好业汰,文檔更加完善。騰訊云移動(dòng)開(kāi)發(fā)平臺(tái)太過(guò)于年輕菩颖,文檔不完善样漆,提交工單也沒(méi)有領(lǐng)域標(biāo)簽,售后工程師也解決不了問(wèn)題晦闰,不知道如何獲取密鑰)
TAB剛好符合我的需求:免費(fèi)快速高效氛濒,不需要考慮是使用結(jié)構(gòu)化數(shù)據(jù)的數(shù)據(jù)庫(kù),像MySQL還是其他(事實(shí)上也嘗試過(guò)鹅髓,但是這種類(lèi)型的關(guān)系型數(shù)據(jù)庫(kù)適合企業(yè)TB級(jí)的數(shù)據(jù)量,對(duì)于我相當(dāng)不合適)京景,而非結(jié)構(gòu)化數(shù)據(jù)像圖片窿冯,音視頻等富媒體又沒(méi)有如此需求,所以也未采用确徙,這兩類(lèi)組成了云產(chǎn)品的數(shù)據(jù)庫(kù)類(lèi)醒串。而非數(shù)據(jù)庫(kù)類(lèi)的產(chǎn)品,像對(duì)象存儲(chǔ)OOS鄙皇,更加適合網(wǎng)盤(pán)芜赌,遂也棄用。
接下來(lái)伴逸,介紹一下數(shù)據(jù)存儲(chǔ)是如何實(shí)現(xiàn)的:數(shù)據(jù)存儲(chǔ)服務(wù)總覽 - LeanCloud 文檔
簡(jiǎn)而言之呢择份,就是提供了一個(gè)面向?qū)ο蟮腁PI接口候址,粗暴快速的調(diào)用偿渡,不用管數(shù)據(jù)結(jié)構(gòu)和后端嗜暴,然后就可以在前端云臺(tái)看到保存在數(shù)據(jù)庫(kù)的數(shù)據(jù)械姻,進(jìn)行統(tǒng)計(jì)清洗等等斑响,和我第一次看到Python的感覺(jué)如出一轍枉侧!
那有多簡(jiǎn)單呢官紫,我們這里以安卓為例肛宋,假設(shè)已經(jīng)根據(jù)文檔配置好SDK和密鑰(文檔非常貼心州藕,會(huì)自動(dòng)把項(xiàng)目的密鑰替換到實(shí)例代碼中),并且測(cè)試過(guò)網(wǎng)絡(luò)等酝陈。
Hello World 核心代碼如下:?
?@Override
? ? protected void onCreate(Bundle savedInstanceState) {
? ? ? ? super.onCreate(savedInstanceState);
? ? ? ? setContentView(R.layout.activity_main);
? ? ? ? ...
? ? ? ? // 測(cè)試 SDK 是否正常工作的代碼
? ? ? ? AVObject testObject = new AVObject("TestObject");
? ? ? ? testObject.put("words","Hello World!");
? ? ? ? testObject.saveInBackground(new SaveCallback() {
? ? ? ? ? ? @Override
? ? ? ? ? ? public void done(AVException e) {
? ? ? ? ? ? ? ? if(e == null){
? ? ? ? ? ? ? ? ? ? Log.d("saved","success!");
? ? ? ? ? ? ? ? }
? ? ? ? ? ? }
? ? ? ? });
? ? ? ? ...
? ? }
基本上和安卓就是一樣的床玻,實(shí)例化對(duì)象,通過(guò)基本萬(wàn)能的put接口輸入后添,最后上傳服務(wù)器和檢驗(yàn)反饋笨枯。
怎么樣,是不是覺(jué)得很簡(jiǎn)單遇西?
當(dāng)然馅精,還是有一些要提前注意:
AVObject 中的?鍵,必須是由字母粱檀、數(shù)字或下劃線(xiàn)組成的字符串洲敢;開(kāi)發(fā)者自定義的鍵,不能以?__(雙下劃線(xiàn))開(kāi)頭茄蚯。AVObject 中的?值压彭,可以是字符串、數(shù)字渗常、布爾值壮不,或是數(shù)組和字典。在平臺(tái)內(nèi)部皱碘,LeanCloud 將數(shù)據(jù)存儲(chǔ)為 JSON询一,因此所有能被轉(zhuǎn)換成 JSON 的數(shù)據(jù)類(lèi)型都可以保存在 LeanCloud 云端。并且癌椿,框架還可以處理日期健蕊、Bytes 以及文件類(lèi)型√叨恚總結(jié)來(lái)說(shuō)缩功,AVObject 中字段允許的類(lèi)型包括:
+
String 字符串
Number 數(shù)字
Boolean 布爾類(lèi)型
Array 數(shù)組
Object 對(duì)象
Date 日期
Bytes base64 編碼的二進(jìn)制數(shù)據(jù)
File 文件
Null 空值
好,最后看看我自己遷移的效果如何: