报错
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);
}
}