快速集成華為AGC雲存儲服務-NodeJS


華為AppGallery Connect提供了一個雲存儲(CloudStorage)的服務,號稱提供了一個便捷的雲端存儲服務,應用開發者使用的時候,可以不用關注服務器的部署,直接使用就行。

這個服務近期上線了服務端NodeJS的SDK,我搶先體驗試用了一下。有興趣的也可以下載codelab研究一下。

1、環境與應用信息

版本名稱 集成環境-應用 測試設備
cloudstorage-server": "1.0.0" Window-Node-v14.15.0 npm v6.14.8 Visual Studio Code PC

環境:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html

SDK版本:agconnect/cloudstorage-server": "1.0.0"

集成SDK命令:npm install --save @agconnect/cloudstorage-server

2、在AGC上開通雲存儲:

PS: 雲存儲服務目前還處於beta狀態,使用前應該發郵件去申請開通:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-apply

我的項目 下選擇你的開發項目,在構建下面,找到雲存儲服務,點擊開通:
沒有Android項目的話,可以先自己創建一個。

在這里插入圖片描述

開通服務的時候,需要先配置存儲實例,這里按需配置就可以,我就隨便配置一個。

在這里插入圖片描述

下一步,還需要配置安全策略,這里使用默認的安全策略就好:
PS:默認的情況是,只有經過身份認證的用戶才能進行讀寫。

在這里插入圖片描述

3、安裝Node.js環境:

NodeJs的安裝是通用步驟,我這邊就不詳細描述,具體的安裝步驟,大家可以去網上自行搜索,我這就說幾個重點步驟

1、 下載並且安裝Window環境的Node.js安裝包:https://nodejs.org/en/download/

2、 安裝NodeJS的時候,會自動安裝對應的npm,安裝完成后,可以通過如下命令查看對應的版本號

在這里插入圖片描述

3、 對於NodeJS代碼的開發,我習慣用的是VSCode, 大家也可以為了根據我這習慣,也安裝一個VScode。http://code.visualstudio.com/

4、 安裝好以后,再打我們的項目路徑,testNodeJSDemo,隨便創建創建一個js文件,寫幾個常規的輸出:

在這里插入圖片描述

5、 在VSCode里面運行這個js文件:在VScode左側的控制台,選擇Run,然后點擊Run and Debug,運行的時候,選擇Node.js,然后就可以下方看到輸啦

在這里插入圖片描述

4、SDK集成

1、打開命令行窗口,進入到項目目錄下,在該目錄下執行npm init命令創建package.json文件,參數使用默認的,一路回車即可,無需關注

在這里插入圖片描述

2、執行如下命令,安裝CloudStorage的Server SDK的依賴

npm install --save @agconnect/cloudstorage-server

在這里插入圖片描述

3、從AGC界面上下載下載Server SDK的認證憑據,並且把下載好的認證憑據放到剛才創建的項目路徑下:,如果沒有認證憑據,可以直接創建一個

在這里插入圖片描述

5、功能開發

a) 初始化:
包含兩塊,一個是初始化Server SDk,一個是初始化Storage實例。

var { AGCClient, CredentialParser } = require("@agconnect/common-server");
var credential = CredentialParser.toCredential("./agc-apiclient-testnodejs.json");
AGCClient.initialize(credential);
 
const {StorageManagement} = require('@agconnect/cloudstorage-server');

b) 配置存儲實例
復制AGC界面上的項目桶名,然后執行如下代碼初始化

let bucketName = '9105385871708601205-ffeon'; // 配置AGC雲端的存儲實例

c) 上傳文件:
此處我默認上傳項目路徑下的test123.txt文件,你們使用的時候,也可以按需配置。

// uploadFile();
function uploadFile() {
    const storage = new StorageManagement();
    const bucket = storage.bucket(bucketName);
  
    bucket.upload('./test123.txt')
      .then(res => console.log(res))
      .catch(err => console.log(err));
  }

d) 下載文件
此處我默認下載雲端根目錄下的test123.txt文件,並且將下載好的本地文件,命名成test_download.txt你們使用的時候,也可以按需配置。

  const fs = require('fs');
// downloadFile();
function downloadFile() {
  const storage = new StorageManagement();
  const bucket = storage.bucket(bucketName);
  const remoteFile = bucket.file('test123.txt');
  const localFile = './test_download.txt';
 
  remoteFile.createReadStream()
    .on('error', err => {
    })
    .on('end', () => {
    })
    .pipe(fs.createWriteStream(localFile))
}

f) 刪除文件
此處我默認刪除雲端根目錄下的test123.txt文件,你們使用的時候,也可以按需配置。

// deleteFile();
function deleteFile() {
    const storage = new StorageManagement();
    const bucket = storage.bucket(bucketName);
    const file = bucket.file('test123.txt');
    file.delete().then(res => {
    }).catch(err => {
    })
  }

g) 例舉全部文件
此處我默認刪除雲端根目錄下的所有文件。

//getFileList();
function getFileList() {
  const storage = new StorageManagement();
  const bucket = storage.bucket(bucketName);
 
  bucket.getFiles({delimiter: '/'}).then(res => {
    console.log(res)
  }).catch(err => {
    console.log(err);
  })
}

6、功能點驗證
1、驗證上傳功能:
取消uploadFile();方法前的注釋,然后在命令行窗口,執行node CloudStorage.js命令,進行文件的上傳。

在這里插入圖片描述

上傳成功后,也可以AGC控制台上看到上傳的test123.txt文件。

在這里插入圖片描述

2、驗證下載
刪除downloadFile();方法前的注釋,然后在命令行窗口,執行node CloudStorage.js命令,進行文件的下載:反饋如下,沒有任何提示

在這里插入圖片描述

下載好以后,可以看到路徑下,已經有剛剛下載的test_download.txt文件

在這里插入圖片描述

在這里插入圖片描述

3、獲取文件列表
刪除 getFileList();方法前的注釋,然后在命令行窗口,執行node CloudStorage.js命令,查看根目錄下的所有文件。命令行窗口顯示如下:

顯示的文件,和AGC界面顯示的文件一致:

在這里插入圖片描述

4、刪除文件:沒有提示
刪除 deleteFile ();方法前的注釋,然后在命令行窗口,執行node CloudStorage.js命令,進行文件的刪除:反饋如下,沒有任何提示

在這里插入圖片描述

此時AGC界面上,test123.txt也同樣被刪除了。

7、總結

僅關注NodeJS的開發,就可以在服務端操作項目中的文件。再也不用為了服務器的搭建和運維擔心,省時省力。而且還提供了類似於管理員模式的web控制台,可以簡單直觀的對服務器上的文件進行管理。

這個雲存儲服務,除了最普通的上傳下載和刪除功能,還包括有列舉文件,設置元數據等功能,具體可以看官方文檔:

雲存儲服務開發指南:

https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-introduction

雲存儲服務codelab:
https://developer.huawei.com/consumer/cn/codelab/CloudStorage-nodejs/index.html#0


原文鏈接:https://developer.huawei.com/consumer/cn/forum/topic/0204411103865560354?fid=0101271690375130218

原作者:Mayism


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM