uni-app 云空间未使用却显示存储下载超量 个人中心页面uni-id-pages上传头像后无法预览 云存储里也不能预览下载
uni-app 云空间未使用却显示存储下载超量 个人中心页面uni-id-pages上传头像后无法预览 云存储里也不能预览下载
产品分类
uniCloud/App
操作步骤
无法使用云存储下载或者预览功能,引入的uni-id-pages组件,里面的个人中心页面,头像可以进行上传,裁切,但是裁切点击确定后,页面不显示头像,提示更新成功。
uploadAvatarImg(res) {
// #ifdef MP-WEIXIN
return false // 微信小程序走 bindchooseavatar方法
// #endif
// #ifndef MP-WEIXIN
if(!this.hasLogin){
return uni.navigateTo({
url:'/uni_modules/uni-id-pages/pages/login/login-withoutpwd'
})
}
const crop = {
quality: 100,
width: 600,
height: 600,
resize: true
};
uni.chooseImage({
count: 1,
crop,
success: async (res) => {
console.log('img',res);
let tempFile = res.tempFiles[0],
avatar_file = {
// #ifdef H5
extname: tempFile.name.split('.')[tempFile.name.split('.').length - 1],
// #endif
// #ifndef H5
extname: tempFile.path.split('.')[tempFile.path.split('.').length - 1]
// #endif
},
filePath = res.tempFilePaths[0]
console.log('file',filePath);
//非app端剪裁头像,app端用内置的原生裁剪
// #ifdef H5
if (!this.isPC) {
filePath = await new Promise((callback) => {
uni.navigateTo({
url: '/uni_modules/uni-id-pages/pages/userinfo/cropImage/cropImage?path=' +
filePath + `&options=${JSON.stringify(crop)}`,
animationType: "fade-in",
events: {
success: url => {
callback(url)
}
},
complete(e) {
console.log(e);
}
});
})
}
// #endif
let cloudPath = this.userInfo._id + '/' + Date.now()+ '.' + avatar_file.extname
avatar_file.name = cloudPath
uni.showLoading({
title: "更新中",
mask: true
});
console.log('filepath',filePath);
console.log('cloudpaht',cloudPath);
let {
fileID
} = await uniCloud.uploadFile({
filePath,
cloudPath,
cloudPathAsRealPath: true, // 阿里云支持云端文件夹路径时,需要写这个属性
onUploadProgress: (progressEvent) => {
console.log(progressEvent);
}
});
console.log('fileId',fileID);
avatar_file.url = fileID
uni.hideLoading()
this.setAvatarFile(avatar_file)
}
})
// #endif
预期结果
云存储下载和预览可以正常使用
实际结果
云存储下载和预览无法正常使用
bug描述
最近都没有使用过云空间,却显示存储下载请求1.39万次,我查了1.1号-1.10号的下载曲线图,显示为0。请排查下原因,现在无法使用下载或者预览功能了。是直接引入的uni-id-pages组件,里面的个人中心页面,头像可以进行上传,裁切,但是裁切点击确定后,页面不显示头像,提示更新成功。查看了控制台报错:
GET https://mp-95b7d2ee-1b76-41fe-8444-e7d92746f53d.cdn.bspapp.com/677f8a1721392984892a0d49/1736470848786.png net::ERR_NAME_NOT_RESOLVED
云存储数据库里有这个数据,但是也不能预览和下载。排查很多遍,觉得可能是因为存储下载超量,但是我最近没有使用过,并且曲线图里显示下载次数为0。麻烦看下原因,谢谢!
针对你提到的两个问题,以下是可能的解决方案及代码示例。由于无法直接访问你的项目代码和环境,以下示例基于假设和通用实践。
问题一:uni-app 云空间未使用却显示存储下载超量
这个问题可能由于以下几个原因造成:
- 数据同步延迟:云空间的使用量统计可能存在延迟。
- 隐藏文件或日志:某些文件或日志可能自动上传至云空间,且不在常规的文件列表中显示。
- 其他应用的占用:如果你的云空间账号被多个应用共享,其他应用可能占用了空间。
解决方案:
- 检查云空间使用情况:登录云控制台,查看详细的文件列表和占用情况。
- 清理不必要的文件:删除不再需要的文件以释放空间。
代码层面,你可以通过云函数来查询和管理云空间的使用情况:
// 云函数示例,用于查询云存储的使用情况
const cloud = require('wx-server-sdk');
cloud.init();
exports.main = async (event, context) => {
const db = cloud.database();
const _ = db.command;
try {
const result = await cloud.callFunction({
name: 'cloudfiles',
data: {},
});
console.log(result);
return result;
} catch (e) {
console.error(e);
return e;
}
};
问题二:个人中心页面uni-id-pages上传头像后无法预览,云存储里也不能预览下载
这个问题可能由于以下几个原因造成:
- 文件上传失败:文件可能没有正确上传到云存储。
- 文件路径错误:预览时使用的文件路径不正确。
- 权限设置问题:云存储的权限设置可能阻止了预览和下载。
解决方案:
- 确保文件上传成功:检查文件上传的代码逻辑,确保文件正确上传到云存储。
- 检查文件路径:确保预览时使用的文件路径与上传后的文件路径一致。
- 设置正确的权限:在云控制台中设置云存储的权限,允许预览和下载。
代码层面,以下是一个简单的文件上传和预览的示例:
// 上传文件
uni.chooseImage({
count: 1,
success: (res) => {
const filePath = res.tempFilePaths[0];
uni.uploadFile({
url: 'https://your-cloud-function-url', // 云函数地址
filePath: filePath,
name: 'file',
success: (uploadFileRes) => {
console.log('上传成功', uploadFileRes);
// 更新头像路径到数据库或本地存储
const avatarUrl = JSON.parse(uploadFileRes.data).fileID;
// 预览头像
uni.previewImage({
urls: [avatarUrl],
});
},
});
},
});
请根据你的实际情况调整上述代码。希望这些示例能帮助你解决问题。