问题一:oos文件上传在暂停时报错ResponseError: socket hang up
对象存储OSS中使用node.js SDK调用断点续传时const OSS = require('ali-oss');const client = new OSS({})client.cancel()nodejs会报错ResponseError: socket hang up 求大神告知一下原因和解决办法!!!!!!!!!!!!!!!!!!!!!!!!
参考回答:
错误。socket hang up
当您在使用阿里云 OSS SDK 进行文件上传操作时,如果在上传过程中出现异常或意外情况(例如网络中断、连接超时等),可能会导致上传进程中断,从而引发 为了解决这个问题,您可以尝试以下几种方法: 异常,并在异常处理程序中重新发送请求。例如:ResponseError
语句捕获 try/except
1. 重试上传操作:在上传过程中出现错误时,您可以尝试捕获异常并重新发送上传请求。您可以使用
import oss2 bucket = oss2.Bucket(oss2.Auth('<your-access-key-id>', '<your-access-key-secret>'), '<your-bucket-name>', '<your-endpoint>') # 待上传的文件路径 local_file_path = '<local-file-path>' # 在 OSS 中保存的文件名 oss_file_key = '<oss-file-key>' # 上传文件 while True: try: bucket.put_object_from_file(oss_file_key, local_file_path) break except oss2.exceptions.ResponseError as e: print(f"Upload failed: {e}") print("Retrying...")
while True
在上述代码中,我们在上传文件时使用了一个 1. 调整超时时间:您还可以尝试调整 OSS SDK 中的超时时间以避免连接中断。可以使用如下方法进行设置:
import oss2 auth = oss2.Auth('<your-access-key-id>', '<your-access-key-secret>') bucket = oss2.Bucket(auth, '<your-bucket-name>', '<your-endpoint>') # 调整超时时间(单位:秒) oss2.defaults.connection_pool_idle_timeout = 30 # 待上传的文件路径 local_file_path = '<local-file-path>' # 在 OSS 中保存的文件名 oss_file_key = '<oss-file-key>' # 上传文件 bucket.put_object_from_file(oss_file_key, local_file_path)
oss2.defaults.connection_pool_idle_timeout
在上述代码中,我们使用 错误。
socket hang up
1. 检查网络设置和防火墙:最后,您还可以检查本地计算机的网络设置和防火墙设置是否正确。如果您的计算机没有正确配置网络或者防火墙异常,则可能会导致上传过程中出现
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/518645
问题二:上传文件到osscURL error: Failed to connect to127.0.0.1
参考回答:
这个错误提示表明在尝试上传文件到OSS时,出现了连接被拒绝的问题。可能的原因有以下几点:
1. OSS服务未启动或无法访问。请检查OSS服务的运行状态和网络连接是否正常。
1. 防火墙设置阻止了连接。请检查防火墙规则,确保允许与OSS服务的通信。
1. 本地网络问题导致连接失败。请检查本地网络设置,确保网络连接正常。
1. cURL配置问题。请检查cURL的配置文件,确保正确设置了代理、超时等参数。
针对这个问题,你可以尝试以下解决方案:1. 确保OSS服务已启动并正常运行。
1. 检查防火墙设置,确保允许与OSS服务的通信。
1. 检查本地网络设置,确保网络连接正常。
1. 检查cURL的配置文件,确保正确设置了代理、超时等参数。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/591187
问题三:上传文件到oss出现问题
上传文件到oss报错:"RequestCoreException: cURL error: Failed to connect to 127.0.0.1 port 15732 after 2049 ms: Connection refused (7)"
参考回答:
这个错误提示表明在尝试上传文件到OSS时,出现了连接被拒绝的问题。可能的原因有以下几点:
1. OSS服务未启动或无法访问。请检查OSS服务的运行状态和网络连接是否正常。
1. 防火墙设置阻止了连接。请检查防火墙规则,确保允许与OSS服务的通信。
1. 本地网络问题导致连接失败。请检查本地网络设置,确保网络连接正常。
1. cURL配置问题。请检查cURL的配置文件,确保正确设置了代理、超时等参数。
针对这个问题,你可以尝试以下解决方案:1. 确保OSS服务已启动并正常运行。
1. 检查防火墙设置,确保允许与OSS服务的通信。
1. 检查本地网络设置,确保网络连接正常。
1. 检查cURL的配置文件,确保正确设置了代理、超时等参数。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/591188
问题四:OSS调用是报错AccessForbidden
2023-10-13 17:29:41.796 WARN 12976 --- [nio-6789-exec-8] com.aliyun.oss : [Server]Unable to execute HTTP request: AccessForbidden
参考回答:
AccessForbiddenCORSResponse: This CORS request is not allowed. This is usually because the evalution of Origin, request method / Access-Control-Request-Method or Access-Control-Requet-Headers are not whitelisted by the resource's CORS spec问题原因:没有配置CORS或CORS配置错误。解决方案:请参见设置跨域资源共享进行排查。https://help.aliyun.com/zh/oss/user-guide/cors-12#concept-pbw-4df-vdb跨域设置CORS(Cross-Origin Resource Sharing)简称跨域访问,是HTML5提供的标准跨域解决方案,允许Web应用服务器进行跨域访问控制,确保跨域数据传输的安全性。注意事项每个Bucket最多可以配置10条跨域规则。当OSS收到一个跨域请求(或者OPTIONS请求)时,会读取Bucket对应的CORS规则,然后进行相应的权限检查。OSS会依次检查每一条规则,使用第一条匹配的规则来允许请求并返回对应的Header。如果所有规则都匹配失败,则不附加任何CORS相关的Header。如果您开启了CDN加速,并且需要进行跨域访问时,您需要在CDN控制台配置跨域规则。具体步骤,请参见CDN如何配置跨域资源共享(CORS)。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/560044
问题五:alibaba-cloud-oss-java-sdk报错
报错
Parameter 0 of method inetIPv6Util in com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration required a single bean, but 2 were found: - spring.cloud.inetutils-org.springframework.cloud.commons.util.InetUtilsProperties: defined in null - inetUtilsProperties: defined by method 'inetUtilsProperties' in class path resource [org/springframework/cloud/commons/util/UtilAutoConfiguration.class]
<properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <spring-boot.version>2.7.7</spring-boot.version> <spring-cloud.version>2021.0.5</spring-cloud.version> <spring-cloud-alibaba.version>2021.0.4.0</spring-cloud-alibaba.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringCloud 微服务 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> <!-- SpringCloud Alibaba 微服务 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-alibaba-dependencies</artifactId> <version>${spring-cloud-alibaba.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alicloud-oss</artifactId> <version>2.2.0.RELEASE</version> </dependency>
@Autowired private OSSClient ossClient; @Test void testOssClientUpload() throws FileNotFoundException { String bucketName = "cloud-big-mall"; String objectName = "123.png"; FileInputStream file = new FileInputStream("C:\\Users\\Alex.Mahone\\Pictures\\Screenshots\\123.png"); ossClient.putObject(bucketName, objectName, file); }
alicloud: access-key: xxx secret-key: xxx oss: endpoint: xxx
参考回答:
cloud可能有冲突这个错误是由于项目中有两个InetUtilsProperties类型的bean,而com.alibaba.cloud.nacos.utils.UtilIPv6AutoConfiguration类中的inetIPv6Util方法只需要一个参数。这导致了Spring Boot的自动配置失败,无法启动应用程序。
关于本问题的更多回答可点击原文查看:https://developer.aliyun.com/ask/562347