oss 单机游戏云存档解决方案
适用场景
- 单机游戏,需要加云存档。
- 需要存储动态图片资源。
功能介绍
1. 开通产品服务(免费)
进入阿里云控制台,添加对象存储oss服务
2. 新建存储空间
重点注意存储空间所在区域
选择标准存储以后,资费很低。
3. 开通之后就可以直接在网页上操作上传和下载文件
4. 开启跨域
代码交互
1. 准备授权accessKeyId和accessKeySecret
(1) 创建子账号(主账号权限太高)
(2) 新建用户
(3) 勾选编程访问
(4) 得到 accessKeyId 和 accessKeySecret(一定要保存到文本里!!!)
2. 给子账号授予访问oss权限
(1) 回到oss界面,点击授权
(2) 授权选择子账号
(3) 权限一定要注意
3. 代码参数填写
(1) 打开cloud.js
找到如下位置
(2) 填写数据
accessKeyId和accessKeySecret 按照第一步的数值进行填写
region表示oss所在的节点,参照:region字段守门
bucket表示oss的名称
Endpoint和cname如果用到域名绑定的时候会用到
4. 操作代码
(1) 初始化
const cloud = kf.require('basic.cloud');
cloud.initAccount('sample', 'aaa', (err, result) => {
if (err) {
return;
}
this.node.getChildByName('resultTxt').getComponent(cc.Label).string = JSON.stringify(result);
});
cloud.js目录下,默认会在根目录下新建一个wechatgame
目录, 而上面代码的sample
为游戏名字,会在wechatgame
目录下新建一个sample
目录,再新建一个以aaa
账号为名字的文件。
(2) 写入数据
const cloud = kf.require('basic.cloud');
cloud.uploadToCloud({ txt: `current time: ${new Date().toLocaleTimeString()}` }, (err) => {
if (err) {
return;
}
this.node.getChildByName('resultTxt').getComponent(cc.Label).string = '写入成功';
});
本地可以将任意文本上传到云端,这里我上传了当前时间
(3) 读取数据
const cloud = kf.require('basic.cloud');
cloud.getCloudInfo((err, result) => {
if (err) {
return;
}
this.node.getChildByName('resultTxt').getComponent(cc.Label).string = JSON.stringify(result);
});
可以从云端将之前存储的数据读取下来。