# CloudSaveManager.updateArchive
以 Promise 风格调用:支持
# 功能描述
更新云存档,支持更新已有的云存档文件和信息。适用于之前创建了云存档,重新上传更新云存储文件的场景。
# 注意事项
archiveFilePath 和 archiveCoverPath 都是本地已经存在的文件,如果没有,请先在本地创建好文件,并填充文件内容后再调用此 API。
createArchive 和 updateArchive 有频次限制(一分钟之内最多调用一次),请做好频控,避免频繁地上传更新云存档文件。
# 参数
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| archiveUUID | string | 是 | 云存档的UUID | |
| archiveMetaData | ArchiveMetaData | 是 | 云存档基础信息 | |
| archiveFilePath | string | 是 | 存档文件路径(单个存档文件大小不超过10MB); 支持FileSystemManager文件路径(如${tap.env.USER_DATA_PATH}/config.json),和小游戏代码中的文件路径(不支持相对路径) | |
| archiveCoverPath | string | 否 | 存档封面文件路径(可选,封面大小不超过512KB); 支持FileSystemManager文件路径(如${tap.env.USER_DATA_PATH}/cover.png,和小游戏代码中的文件路径(不支持相对路径) | |
| success | function | 否 | 成功的回调 | |
| fail | function | 否 | 失败的回调 | |
| complete | function | 否 | 完成的回调 |
ArchiveMetaData:
| 属性 | 类型 | 默认值 | 必填 | 说明 |
|---|---|---|---|---|
| name | string | 是 | 存档名,60字节以内,不允许空,不允许汉字 | |
| summary | string | 是 | 存档描述,500字节以内,不允许空 | |
| extra | string | 否 | 用户自定义信息,1000字节以内,允许空 | |
| playtime | number | 否 | 游戏时间(秒级) |
success回调返回数据:
Object res:
| 属性名 | 数据类型 | 说明 |
|---|---|---|
| uuid | string | 云存档的唯一标识,updateArchive后不会更新 |
| fileId | string | 云存档文件的ID,updateArchive后会更新 |
# 错误
| 错误码 | 说明 |
|---|---|
| 400000 | 非法的存档文件/封面大小 |
| 400001 | 存档上传频率超限(createArchive和updateArchive限制一分钟一次) |
| 400002 | 指定的存档不存在 |
| 400003 | 单个应用下存档数量超限 |
| 400005 | 总使用存储空间超限 |
| 400006 | 非法的操作令牌,通常是由于网络卡顿,创建/更新存档耗时过长导致 |
| 400007 | 不允许并发调用 |
| 400008 | 找不到可用的OSS供应商 |
| 400009 | 存档名称不合法 |
| 400100 | 云存档sdk初始化失败 |
| 400101 | 云存档路径对应的文件不存在 |
| 400200 | archiveFilePath为空 |
| 400201 | archiveUUID为空 |
# 示例代码
tapCloudSave.updateArchive({
archiveMetaData: {
"name": "test_cloud_save_update",
"summary": " 测试更新云存档",
"extra": "updateArchive",
"playtime": parseInt(+new Date() / 1000)
},
archiveFilePath: `${tap.env.USER_DATA_PATH}/archiveFile.json`, // 存档文件路径(单个存档文件大小不超过10MB)
archiveCoverPath: `${tap.env.USER_DATA_PATH}/archiveCoverFile.png`, // 存档封面文件路径(可选,封面大小不超过512KB)
success: (res) => {
console.log("updateArchive success:", JSON.stringify(res, null, 2));
},
fail: ({errMsg, errno}) => {
console.error(`updateArchive failed: errMsg={errMsg}, errno=${errno}`);
},
complete: ({errMsg, errno}) => {
console.log(` updateArchive complete: errMsg=${errMsg}, errno=${errno}`);
}
});
