Google cloud storage 将大文件上载到google云存储时超时
我无法将大型文件上传到谷歌云存储。我成功上传了一个700MB的文件,但是当我尝试5GB的文本文件时,它抛出了以下异常。我无法通过谷歌搜索找到解决方案 问题在于一个简单java类的主方法Google cloud storage 将大文件上载到google云存储时超时,google-cloud-storage,Google Cloud Storage,我无法将大型文件上传到谷歌云存储。我成功上传了一个700MB的文件,但是当我尝试5GB的文本文件时,它抛出了以下异常。我无法通过谷歌搜索找到解决方案 问题在于一个简单java类的主方法 Exception in thread "main" java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out Caused by: java.net.SocketTimeoutException: Read time
Exception in thread "main" java.lang.RuntimeException: java.net.SocketTimeoutException: Read timed out
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.read(SocketInputStream.java:150)
at java.net.SocketInputStream.read(SocketInputStream.java:121)
at sun.security.ssl.InputRecord.readFully(InputRecord.java:312)
at sun.security.ssl.InputRecord.read(InputRecord.java:350)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:893)
at sun.security.ssl.SSLSocketImpl.readDataRecord(SSLSocketImpl.java:850)
......
看起来您可能需要提高连接超时设置。该链接适用于android,但同样适用,并且实现方式完全相同。对于较大的文件,尤其是在移动设备和无线连接上,您的上传更可能因连接中断而中断。解决这个问题的办法是让你的上传能够抵抗断开的连接。谷歌云存储使用一种叫做。您需要使用此技术,以便应用程序能够从网络问题中恢复 在Java SDK中,我们可以选择更改连接超时并重试
HttpTransportOptions transportOptions = StorageOptions.getDefaultHttpTransportOptions();
transportOptions = transportOptions.toBuilder().setConnectTimeout(60000).setReadTimeout(60000)
.build();
var storage = StorageOptions.newBuilder()
.setRetrySettings(RetrySettings.newBuilder().setMaxAttempts(2).build())
.setTransportOptions(transportOptions)
.setProjectId("project_id").build().getService();
在google云存储的java客户端库中,没有设置连接超时长度的位置。storage.Objects.Insert insertObject=storage.Objects().Insert(bucketName、objectMetadata、mediaContent);insertObject.execute();似乎没有设置超时的地方。它使用了可恢复的上载。默认情况下,它是可恢复上载的。