当前位置: 首页 > 知识库问答 >
问题:

向google云存储上传大文件超时

杜英叡
2023-03-14

我在将大型文件上传到Google云存储时遇到了问题。我成功上传了一个700MB的文件,但当我尝试一个5GB的文本文件时,它引发了以下异常。我无法通过谷歌搜索找到解决方案。

问题出在一个简单java类的main方法中。

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)
......

共有3个答案

南宫正阳
2023-03-14

在JavaSDK中,我们可以选择更改连接超时和重试。

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();
戚成礼
2023-03-14

对于较大的文件,尤其是在移动设备和无线连接上,你的上传更有可能被断开的连接中断。解决这个问题的方法是让你的上传对断开的连接有弹性。谷歌云存储使用一种叫做可恢复上传的技术来处理这个问题。您需要利用这种技术,以便您的应用程序可以从网络问题中恢复。

杭昊空
2023-03-14

获取java.net。SocketTimeoutException:连接在android中超时,看起来您可能需要跳过连接超时设置。该链接适用于android,但同样的情况也适用,而且实现方式完全相同。

 类似资料:
  • 我在本地开发服务器上运行代码,但使用在项目上配置的GCS默认桶名。 Python 2.7版

  • Firebase Admin SDK文档清楚地说明,服务帐户对存储帐户具有完全的范围控制,但由于传输令牌源为nil,因此正确引导凭据似乎有些错误。

  • 从spring boot Controller上传文件到谷歌云存储。请提供我一个代码。 到目前为止,我得到了这样一个代码

  • 我已经上传了. jpg文件到GCS一段时间,我没有改变我的代码,在过去的5个月里做这个操作。大约一个月前,我开始意识到我上传的一些图像文件开始被列为类型:文件夹,而不是像以前那样被列为类型:图像/jpeg。 大约一个月前,地面军事系统的用户界面发生了变化,我感觉背景中的某些东西也发生了变化,要么是谷歌的错误(不太可能),要么是我一直以错误的方式上传图片(可能有一些错误的元数据,或者是一些阻止地面军

  • 我有一个firebase帐户,我想以编程方式上传一些照片到firebase存储。为此,我使用了google cloud java storage API。我配置权限和其他权限。我可以成功地创建桶,斑点。然而,当我试图上传一张图片时,要么它的大小为0,要么它无法下载(不生成URL)。下面是我使用的代码; 任何建议都很感激。问候。

  • 谷歌云存储中的文件更改需要多长时间才能传播? 我遇到了一个非常令人沮丧的问题,我改变了一个文件的内容,并通过gsutil重新上传,但是这个改变几个小时后才显示出来。有没有办法强制一个改变的文件立即传播所有内容? 如果我查看谷歌云存储控制台中的文件,它会看到新文件,但如果我点击公共网址,它是旧版本,在某些情况下,是2个版本前的版本。 有没有我没有设置的标题? 编辑: 我尝试了,但它没有帮助,但也许旧

  • 我正试图用BlobStore上传到GCS。我在生成上传url时设置了GCS bucket名称,并且文件成功上传。 在上传处理程序中,返回正确的文件名。但是文件实际上以不同的文件名保存在GCS bucket中。每次,文件名都是随机散列,如下所示: 它会是这样工作的吗?这是异常吗? 我根据返回的数据将文件名存储到datastore,这是文件名的正确值。但是我无法使用访问该文件,因为该文件以随机散列作为