阿里云上传图片超时问题


报错

errError: timeout of 5000ms exceeded

报错原因

以下2个方法执行时间过长,在我的电脑平均每个3秒左右,导致超时报错

OSS ossClient = new OSSClientBuilder().build(endpoint,accessKeyId,accessKeySecret);
ossClient.putObject(bucketName, fileName, inputStream);

解决方式(1)

这里前端使用的是vue的vue-admin-template-master模板

修改超时的等待时间,src-utils-request.js

// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // api 的 base_url
  timeout: 5000 // 请求超时时间
})

解决方式(2)

在项目启动时就执行对象的创建,从而节省请求的时间

//该类的run方法在项目启动时就执行,有且仅执行一次
//通过实现ApplicationRunner接口的run方法初始化变量
//用于加快访问速度,避免请求超时
@Component
public class InitConfig implements ApplicationRunner {

    public static OSS ossClient;
    @Override
    public void run(ApplicationArguments args) {
        // Endpoint以杭州为例,其它Region请按实际情况填写。
        String endpoint = ConstantPropertiesUtil.END_POINT;
        // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建。
        String accessKeyId = ConstantPropertiesUtil.ACCESS_KEY_ID;
        String accessKeySecret = ConstantPropertiesUtil.ACCESS_KEY_SECRET;
        // 创建OSSClient实例。
        ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

    }
}

  目录