華為云存儲(chǔ)可擴(kuò)展且無需維護(hù)。它使我們能夠通過直接訪問設(shè)備安全,經(jīng)濟(jì)地存儲(chǔ)大量數(shù)據(jù),例如用戶生成的圖像,音頻和視頻。它服務(wù)穩(wěn)定,安全,高效且易于使用,可以使開發(fā)者擺脫存儲(chǔ)服務(wù)器的開發(fā),部署,運(yùn)維和容量擴(kuò)展。開發(fā)人員可以專注于服務(wù)能力的建立和運(yùn)營,從而改善用戶體驗(yàn)。
本文中,我們將了解如何將華為云存儲(chǔ)工具包集成到您的應(yīng)用程序中。
一、事前準(zhǔn)備
華為開發(fā)者帳號(hào)
HMS 4.0.0.300或更高版本的Huawei手機(jī)
裝有Android Studio,Jdk 1.8,SDK平臺(tái)26和Gradle 4.6 的筆記本電腦或臺(tái)式機(jī)。
二、按照步驟來
1、在android studio中創(chuàng)建一個(gè)項(xiàng)目。
2、獲取SHA密鑰。要獲取SHA密鑰,請(qǐng)參閱本文。
3、在華為應(yīng)用程序庫connect中創(chuàng)建一個(gè)應(yīng)用程序。
4、在“管理API”部分中啟用身份驗(yàn)證服務(wù),帳戶工具包和云存儲(chǔ)設(shè)置。
5、在“應(yīng)用信息”部分提供SHA密鑰。
6、提供存儲(chǔ)位置。
7、進(jìn)入身份驗(yàn)證服務(wù),啟用“華為帳號(hào)”和“匿名帳號(hào)”。
8、啟用Cloud Storage后,在集成AppGallery Connect的Cloud Storage SDK時(shí),轉(zhuǎn)到我的項(xiàng)目>項(xiàng)目設(shè)置>常規(guī)信息,下載并打開agconnect-services.json文件,并將與存儲(chǔ)相關(guān)的內(nèi)容添加到服務(wù)標(biāo)簽。
例:
“云存儲(chǔ)”: {
“ storage_url”:“”,
“ default_bucket”:“”
}
a)我們可以選擇中國作為數(shù)據(jù)存儲(chǔ)位置。通過這種方式,設(shè)置storage_url:
https://agc-storage-drcn.platform.dbankcloud.cn
b)default_bucket的值是在“項(xiàng)目設(shè)置 -> 構(gòu)建-> 云存儲(chǔ)”頁面上的存儲(chǔ)實(shí)例框中輸入的信息。在agconnect-services.json文件中提供信息后,將文件復(fù)制并粘貼到android項(xiàng)目的app文件夾中。
9、將以下Maven網(wǎng)址復(fù)制并粘貼到buildscript和allprojects(項(xiàng)目build.gradle文件)的存儲(chǔ)庫中:
專家{url'http://developer.huawei.com/repo/'}
10、將以下類路徑復(fù)制并粘貼到buildscript(項(xiàng)目build.gradle文件)的依賴項(xiàng)中:
類路徑'com.huawei.agconnect:agcp:1.3.1.300'
11、將以下插件復(fù)制并粘貼到應(yīng)用程序build.gradle文件中:
應(yīng)用插件:“ com.huawei.agconnect”
12、將以下庫復(fù)制并粘貼到應(yīng)用程序build.gradle文件的依賴項(xiàng)中:
實(shí)施'com.huawei.agconnect:agconnect-core:1.3.1.300'
實(shí)施'com.huawei.agconnect:agconnect-auth:1.3.1.300'
實(shí)現(xiàn)“ com.huawei.agconnect:agconnect-storage:1.3.0.92”
實(shí)施'com.huawei.hms:hwid:4.0.1.301'
13、在Android清單文件中的權(quán)限下方添加:
<uses-permission android:name =“ android.permission.INTERNET”/>
<uses-permission android:name =“ android.permission.ACCESS_WIFI_STATE”/>
<uses-permission android:name =“ android.permission.ACCESS_NETWORK_STATE”/>
<uses-permission android:name =“ android.permission.WRITE_EXTERNAL_STORAGE”/>
<uses-permission android:name =“ android.permission.READ_EXTERNAL_STORAGE”/>
14、同步gradle。
三、編碼開始
云存儲(chǔ)的開發(fā)過程如下:
1)集成Auth Service SDK
2)啟用云存儲(chǔ)
3)初始化云存儲(chǔ)
4)管理文件
集成Auth Service SDK
云存儲(chǔ)取決于身份驗(yàn)證服務(wù)。我們需要預(yù)先集成Auth Service SDK。完成之后,我們已經(jīng)在應(yīng)用程序中實(shí)現(xiàn)了Auth Service SDK和HMS Account Kit SDK。現(xiàn)在我們必須在代碼中使用它。在這里將選擇兩種驗(yàn)證用戶身份的方法:
1)使用IdToken SignIn,我們將允許用戶登錄應(yīng)用程序。例如,如果用戶錯(cuò)誤地從應(yīng)用程序注銷,則他/她可以使用此功能輕松登錄。
編寫完以上代碼后,我們可以使用以下代碼獲得結(jié)果:
2)使用AGConnectUser,我們將檢查用戶是否已經(jīng)登錄。
3)由于我們使用兩種方法來確定用戶的簽到過程中,我們需要為了從應(yīng)用程序注銷用戶檢查這兩種情況。
啟用云存儲(chǔ)及初始化云存儲(chǔ)
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-getstarted
管理檔案
在完成云存儲(chǔ)實(shí)例初始化之后,我們可以使用Cloud Storage SDK在我們的應(yīng)用程序中使用元數(shù)據(jù)上傳,下載,顯示文件列表,刪除文件以及顯示文件詳細(xì)信息。
上傳一個(gè)文件
使用Cloud Storage,您可以將本地設(shè)備上的目錄和文件快速上載到AppGallery Connect的云服務(wù)器。為此,我們需要先使用AGCStorageManagement創(chuàng)建一個(gè)StorageReference,然后使用該引用將文件從應(yīng)用程序上傳到云存儲(chǔ)。以下是將文件從應(yīng)用程序上傳到云存儲(chǔ)的代碼:
在應(yīng)用程序中,我們使用文件瀏覽器選擇文件,然后使用此功能將文件上傳到云存儲(chǔ)中。這里的curFilePath包含本地設(shè)備文件的路徑,而curFileName包含本地文件的名稱。
列出文件
Cloud Storage SDK允許通過調(diào)用API列出云目錄中的所有文件或子目錄。為此,我們需要先使用AGCStorageManagement創(chuàng)建一個(gè)StorageReference,然后使用該引用將所有文件(包括目錄從Huawei Cloud Storage)獲取到我們的應(yīng)用程序,并將其存儲(chǔ)在HashMap或列出適合我們的列表中。以下是從云存儲(chǔ)獲取所有文件的代碼的列表:
在上面的代碼中,expandableStorageList是哈希表,該哈希表將所有文件的列表存儲(chǔ)為值,將目錄存儲(chǔ)為鍵。
顯示文件的詳細(xì)信息
將文件保存到云后,您可以獲取文件的元數(shù)據(jù)(詳細(xì)信息)以確定是否下載文件。為了獲得文件的詳細(xì)信息,我們將調(diào)用StorageReference.getFileMetadata方法來獲取包含文件元數(shù)據(jù)的FileMetadata實(shí)例。以下是實(shí)現(xiàn)文件元數(shù)據(jù)或文件詳細(xì)信息的代碼:
下載文件
將文件上傳到云后,您可以調(diào)用Cloud Storage SDK將云上的文件下載到本地設(shè)備。為了下載文件,我們將調(diào)用StorageReference.getFile方法將云中的文件數(shù)據(jù)寫入本地文件。以下是將文件從云存儲(chǔ)下載到本地設(shè)備的代碼:
刪除文件
我們可以調(diào)用Cloud Storage SDK從應(yīng)用客戶端上的云中刪除不必要的文件。為了從應(yīng)用程序中刪除文件,我們需要調(diào)用StorageReference.delete來刪除云上的文件。以下是使用我們的應(yīng)用程序從云存儲(chǔ)中刪除文件的代碼:
想要查詢更多的信息
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-introduction