乐趣区

关于android:快速集成华为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

退出移动版