【解决】failed: Connection timed out: no further information [ErrorCode]: SocketException[RequestId]: Un

一,问题描述

使用阿里云OSS上传文件时报错如下所示:
在这里插入图片描述
补充:
这个问题只在bucket地域为香港才会出现,正常地域为内地的比如北京是不会出现上面的问题。

二,解决过程

先说结论:是因为本机代理ip和端口没有配置的原因造成香港地区oss访问超时。

接口代码如下:

@RestController
@RequestMapping("/files")
public class UploadController {


    @PostMapping("/imageUpload")
    public Result<String> upload( MultipartFile file)  {
        System.out.println(file);
        try{
            //把文件内容传递到本地磁盘中
            String originalFilename = file.getOriginalFilename();
            //保证名字是唯一的,防止文件覆盖
            String filename=UUID.randomUUID().toString()+ originalFilename.substring(originalFilename.lastIndexOf("."));
            String url = AliOssUtil.uploadFile(filename, file.getInputStream());
            return Result.success("上传成功",url);
        }catch (Exception e){
            System.out.println(e);
            return Result.error("上传失败");
        }
    }
}

工具类代码如下:

问题原因就在代码注释的地方

package com.wsn.smartofficeserver.utils;

import com.aliyun.oss.*;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;


import java.io.InputStream;


public class AliOssUtil {

    private  static final String ENDPOINT = "oss-cn-hongkong.aliyuncs.com";
    private  static final String OSS_ACCESS_KEY_ID = "填自己的OSS_ACCESS_KEY_ID ";
    private  static final String OSS_ACCESS_KEY_SECRET = "填自己的OSS_ACCESS_KEY_SECRET ";
    private static final String BUCKT_NAME = "填自己的BUCKT_NAME ";
	//1.声明配置静态常量configuration
	private static final ClientBuilderConfiguration configuration = new ClientBuilderConfiguration();


    public static String uploadFile(String objectName, InputStream in) throws Exception {
		//2.配置本机代理IP(如果不知道怎么找,看本文下面),如果是公司那么就按照公司代理配置
        configuration.setProxyHost("0.0.0.0");
        //3.配置本机代理端口(如果不知道怎么找,看本文下面),如果是公司那么就按照公司代理配置
        configuration.setProxyPort(4780);
        //4.将配置传入build
        OSS ossClient = new OSSClientBuilder().build(ENDPOINT,OSS_ACCESS_KEY_ID,OSS_ACCESS_KEY_SECRET,configuration);

        String url="";
        try {
            PutObjectRequest putObjectRequest = new PutObjectRequest(BUCKT_NAME, objectName, in);
            PutObjectResult result = ossClient.putObject(putObjectRequest);
            url="https://"+BUCKT_NAME+"."+ENDPOINT.substring(ENDPOINT.lastIndexOf("/")+1)+"/"+objectName;
        } catch (OSSException oe) {
            System.out.println("Caught an OSSException, which means your request made it to OSS, "
                    + "but was rejected with an error response for some reason.");
            System.out.println("Error Message:" + oe.getErrorMessage());
            System.out.println("Error Code:" + oe.getErrorCode());
            System.out.println("Request ID:" + oe.getRequestId());
            System.out.println("Host ID:" + oe.getHostId());
        } catch (ClientException ce) {
            System.out.println("Caught an ClientException, which means the client encountered "
                    + "a serious internal problem while trying to communicate with OSS, "
                    + "such as not being able to access the network.");
            System.out.println("Error Message:" + ce.getMessage());
        } finally {
            if (ossClient != null) {
                ossClient.shutdown();
            }
        }
        return url;
    }
}

补充:如何查看本机代理端口和ip

1、打开自己的代理工具查看代理端口

在这里插入图片描述

2、打开cmd运行

netstat -ano

在这里插入图片描述

3.将上面的本机地址ip和端口填入到代码注释对应处,即可。重新运行,postman测试成功。

在这里插入图片描述

这个错误提示"Connection timed out: no further information"通常表示连接超时,没有更多的信息提供。根据引用中的描述,可能有以下几个原因导致这个问题: 1. 首先,需要检查网络连接是否正常。可以使用Hue工具进行访问测试,确保网络连接没有问题。 2. 其次,需要检查Zookeeper是否已经启动。可以使用命令"telnet zookeeper地址 端口"来检查Zookeeper是否可用。 3. 最后,还需要检查Hue中的Hdfs节点是否正常运行。如果某个Hdfs节点挂掉了,也会导致这个错误。 希望这些信息对您有帮助!<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Connection timed out: no further information和Zookeeper is not connected yet!](https://blog.csdn.net/zcyf0809/article/details/103681756)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Hdfs连接报错java.net.ConnectException: Connection timed out: no further information](https://blog.csdn.net/ZGL_cyy/article/details/120706510)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HvrI1

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值