uni-app unicloud 支付宝云 云对象上传失败

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app unicloud 支付宝云 云对象上传失败

操作步骤:

  • 在云对象目录下安装了三方模块,还有.onnx模型文件

预期结果:

  • 和本地调试一样正常运行

实际结果:

  • 云对象上传失败

bug描述:

18:18:41.707 [支付宝云:free] HBuilderx已支持通过命令行cli部署uniCloud资源,详情参考:https://hx.dcloud.net.cn/cli/uniCloud [不再提示] 18:18:43.201 [支付宝云:free] 正在上传云对象onnx… 18:19:22.533 [支付宝云:free] 上传失败:cURL error 28: Operation timed out after 30001 milliseconds with 0 bytes received (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)


2 回复

有一个10M的onnx文件


在处理uni-app结合unicloud以及支付宝云云对象上传失败的问题时,通常我们需要从几个方面进行排查和调试。以下是一个可能的代码案例和排查步骤,帮助你定位并解决问题。

1. 初始化并配置uniCloud

首先,确保你的uniCloud项目已经正确配置,并且已经在支付宝云上创建了相应的服务空间。

// uniCloud/cloudfunctions/common/main.js
const cloud = require('wx-server-sdk');
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
  traceUser: true,
});

exports.main = async (event, context) => {
  const db = cloud.database();
  // 你的业务逻辑
};

2. 前端上传代码

在前端代码中,你需要使用uniCloud的API来上传文件。以下是一个简单的示例:

// pages/index/index.vue
<template>
  <view>
    <button @click="chooseImage">选择图片</button>
  </view>
</template>

<script>
export default {
  methods: {
    chooseImage() {
      uni.chooseImage({
        count: 1,
        success: (res) => {
          const filePath = res.tempFilePaths[0];
          this.uploadFile(filePath);
        },
      });
    },
    async uploadFile(filePath) {
      try {
        const result = await uniCloud.uploadFile({
          cloudPath: 'uploads/' + Date.now() + '-' + filePath.split('/').pop(),
          filePath: filePath,
        });
        console.log('上传成功', result);
      } catch (error) {
        console.error('上传失败', error);
      }
    },
  },
};
</script>

3. 排查步骤

  • 检查云函数配置:确保你的云函数已经部署到支付宝云,并且权限配置正确。
  • 检查文件路径:确保上传的文件路径正确,没有包含非法字符。
  • 检查网络状态:确保客户端设备网络状态良好,能够正常访问支付宝云。
  • 查看云函数日志:在支付宝云控制台查看云函数的执行日志,看是否有更详细的错误信息。
  • 调试前端代码:使用开发者工具的调试功能,查看uploadFile方法的执行情况和捕获的异常信息。

通过以上步骤和代码示例,你应该能够定位并解决uni-app结合unicloud以及支付宝云云对象上传失败的问题。如果问题依然存在,可能需要进一步检查支付宝云的API文档和uni-app的官方文档,确保所有配置和使用方式都是正确的。

回到顶部