华为AppGallery Connect提供了一个云存储(CloudStorage)的服务,号称提供了一个便捷的云端存储服务,利用开发者应用的时候,能够不必关注服务器的部署,间接应用就行。
目前这个性能还在beta阶段,我先领先体验了一下。
1、环境与利用信息
AGC地址:https://developer.huawei.com/consumer/cn/service/josp/agc/index.html
SDK集成形式:在Cocos Creator中开明集成
2、在AGC上开明云存储:
PS: 云存储服务目前还处于beta状态,应用前应该发邮件去申请开明:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-apply
在我的我的项目 下抉择你的开发我的项目,在构建上面,找到云存储服务,点击开明:
没有Android我的项目的话,能够先本人创立一个。
开明服务的时候,须要先配置存储实例,这里按需配置就能够,我就轻易配置一个。
下一步,还须要配置安全策略,这里应用默认的安全策略就好:
PS:默认的状况是,只有通过身份认证的用户能力进行读写。
3、在Cocos Creator我的项目集成SDK
3.1 集成SDK
官网文档:https://docs.cocos.com/creator/manual/zh/cocos-service/agc-applinking.html
(1)在 Cocos 服务面板接入所需的云存储服务。目前 SDK 仅反对 Android 平台
(2)接入相干的服务前,须要先关联APP,在服务界面点击启用后,再点击 关联 按钮,点击创立后,会跳转到Cocos的治理台,
(3)能够依据集体须要创立一个新游戏
(4)创立实现后,就能够回到Cocos Creator界面新建,刷新和抉择进行利用的关联,
(5)而后就能够回到云存储界面,能够正式进行服务的开明了
(6)服务开明当前,须要配置默认的存储实例,此处须要填写AGC界面上的曾经开明云存储的我的项目的默认桶。
3.2 下载json文件
(1) 服务开明当前,回到我的项目设置界面,下载最新的json文件。
(2)将刚下载好json文件,放到Cocos我的项目的settings目录下
4、前置步骤
4.1 批改平安规定
默认的平安规定下,须要通过华为认证的用户,能力进行云存储文件操作。
为了集成不便,顺便批改云存储的平安规定,将平安规定批改为全副容许,此时无需通过华为认证,就能够对云存储中的文件进行操作。
// 全副容许 agc.cloud.storage[ match: /{bucket}/{path=**} { allow read, write: if true; }]
4.2 界面布局
在Cocos Creator上设置几个按钮,通过点击按钮来实现性能:包含例举文件,上传,下载文件,和删除文件的按钮。
5、 性能开发:
5.1 初始化,并且在Start中创立监听
start () { this._storage = huawei.agc.storage; this._storage.storageService.on("error", data => console.log("Cloud Storage", `error : ${data.errCode}:${data.errMsg}`), this); this._storage.storageService.on("get-file-metadata", data => console.log("Cloud Storage", JSON.stringify(data)), this); this._storage.storageService.on("update-file-metadata", data => console.log("Cloud Storage", JSON.stringify(data)), this); this._storage.storageService.on("delete-file", data => console.log("Cloud Storage", JSON.stringify(data)), this); this._storage.storageService.on("list-file", data => console.log("Cloud Storage", JSON.stringify(data)), this); this._storage.storageService.on("get-download-url", data => console.log("Cloud Storage", JSON.stringify(data)), this); this._storage.storageService.on("task", data => { console.log("Cloud Storage", JSON.stringify(data)); if (data.task instanceof this._storage.AGCDownloadTask && data.status === 'successful') { jsb.fileUtils.renameFile(jsb.fileUtils.getWritablePath() + "/output.json", jsb.fileUtils.getWritablePath() + "/output1.json"); } }, this); // 创立根目录的援用 this.rootReference = huawei.agc.storage.storageService.getInstance().getStorageReference(); },
5.2 例举文件
应用ListALL办法,例举所有文件:
listAll:function () { this.rootReference.listAll(); console.log('Cloud Storage', 'ListAll file');}
5.3 下载文件
下载一个云端的,名为test.jpg的文件,并且重新命名为test1.jpg。
download:function () {// 先 delete 文件,防止文件已存在导致下载失败jsb.fileUtils.removeFile(jsb.fileUtils.getWritablePath() + "/test.jpg");this.rootReference.child("test.jpg").getFile(jsb.fileUtils.getWritablePath() + "/test1.jpg");console.log('Cloud Storage', 'download test.jpg, and reNamed test1.jpg');},
5.4 上传文件
上传刚刚下载的test1.jpg文件
upload:function () { if (!jsb.fileUtils.isFileExist(jsb.fileUtils.getWritablePath() + "/test1.jpg")) { return console.log('Cloud Storage', 'local file test1.jpg not exist, please click Download!') } this.rootReference.child("test1.jpg").putFile(jsb.fileUtils.getWritablePath() + "/test1.jpg"); console.log('Cloud Storage', 'upload test1.jpg'); },
5.5 删除文件
删除本地的,以及云端的test1.jpg文件。
delete:function () { this.rootReference.child("test1.jpg").delete(); console.log('Cloud Storage', 'delete test1.jpg success!') jsb.fileUtils.removeFile(jsb.fileUtils.getWritablePath() + "/test1.jpg"); },
6、打包测试:
应用Cocos creator的build,打包一个Android文件,并且装置到设施上,验证性能点是否正确。
android:allowBackup="false"
留神打包的时候,如果API抉择的是android-30,则须要把AndroidManifest文件中的android:allowBackup属性,批改为false。
6.1 例举文件
点击ListALL按钮,在Logcat中查看所有列举的文件:在日志中筛选查看Cloud Storage,查看后果
6.2 下载文件
点击download按钮,在日志中查看下载后果:
6.3 上传文件
点击Upload按钮,在日志中查看下载后果:
此时在AGC界面上,也能够看到刚刚上传的test1.jpg文件
6.4 删除文件
点击delete按钮,在日志中查看下载后果:
此时在AGC界面上,也能够刚刚上传的test1.jpg文件曾经被删除
7、总结
仅关注前端利用的开发,就能够在Cocos上开发一个带云端存储服务性能的游戏。再也不必为了服务器的搭建和运维放心,省时省力。而且还提供了相似于管理员模式的web控制台,能够简略直观的对服务器上的文件进行治理。
这个云存储服务,除了最一般的上传下载和删除性能,还包含有设置元数据等性能,具体能够看官网文档:
欲了解更多详情,请参见:
云存储服务开发指南:
https://developer.huawei.com/consumer/cn/doc/development/AppGallery-connect-Guides/agc-cloudstorage-introduction
Cocos对于云存储的文档:
https://docs.cocos.com/creator/manual/zh/cocos-service/agc-cloudstorage.html
原文链接:
https://developer.huawei.com/consumer/cn/forum/topic/0201419625098590546?fid=0101271690375130218
作者:Jessyyyyy