将文件上传到 Google Cloud Storage:500 后端错误

2024-01-24

我们尝试将文件上传到 Google Cloud Storage,然后再将其移至 BigQuery,但在某些上传过程中,我们经常遇到“500 内部服务器错误”或“410 消失”(原始消息如下)。

我们使用的是官方 SDK,并添加了指数退避重试,但错误始终存在。请问您有什么建议吗?

这是我们上传的方式(scala):

val credential = new GoogleCredential().setAccessToken(accessToken)

val requestInitializer = new HttpRequestInitializer() {
    def initialize(request: HttpRequest): Unit = {
        credential.initialize(request)

        // to avoid read timed out exception
        request.setConnectTimeout(200000)
        request.setReadTimeout(200000)

        request.setIOExceptionHandler(new 
            HttpBackOffIOExceptionHandler(new ExponentialBackOff()))
        request.setUnsuccessfulResponseHandler(new 
            HttpBackOffUnsuccessfulResponseHandler(new ExponentialBackOff()))
    }
}

val storage = new Storage.Builder(
    new NetHttpTransport,
    JacksonFactory.getDefaultInstance,
    requestInitializer
).setApplicationName("MyAppHere").build

val objectMetadata = new StorageObject()
    .setBucket(bucketName)
    .setName(distantFileName)

val isc = new InputStreamContent("binary/octet-stream", fis)
val length = isc.getLength
val insertObject = storage.objects().insert(bucketName, objectMetadata, isc)
// For small files, you may wish to call setDirectUploadEnabled(true), to
// reduce the number of HTTP requests made to the server.
if (length > 0 && length <= 2 * 1000 * 1000 /* 2MB */ ) {
    insertObject.getMediaHttpUploader.setDirectUploadEnabled(true)
}
insertObject.execute()

我们的 scala 依赖项:

"com.google.api-client" % "google-api-client" % "1.18.0-rc",
"com.google.api-client" % "google-api-client-jackson2" % "1.18.0-rc",
"com.google.apis" % "google-api-services-bigquery" % "v2-rev142-1.18.0-rc",
"com.google.apis" % "google-api-services-storage" % "v1-rev1-1.18.0-rc",
"com.google.http-client" % "google-http-client" % "1.18.0-rc",
"com.google.oauth-client" % "google-oauth-client" % "1.18.0-rc"

原始 SDK 错误响应:

500 Internal Server Error
    {
        "code" : 500,
        "errors" : [ {
        "domain" : "global",
        "message" : "Backend Error",
        "reason" : "backendError"
    } ],
        "message" : "Backend Error"
    }

410 Gone
    {
        "code" : 500,
        "errors" : [ {
        "domain" : "global",
        "message" : "Backend Error",
        "reason" : "backendError"
    } ],
        "message" : "Backend Error"
    }

Every Backend error应通过指数重试来处理,因为可能会出现服务问题。

如果 10 小时后错误仍然存​​在,那么您应该联系支持人员,以便为您的问题提供 1:1 帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将文件上传到 Google Cloud Storage:500 后端错误 的相关文章

随机推荐

  • 如何将 IDbCommandInterceptor 仅挂钩到特定类型的 DbContext?

    目前我正在添加我的实现IDbCommandInterceptor https msdn microsoft com en us library system data entity infrastructure interception i
  • 清除:两者或溢出:自动,哪个更好?

    我真的不明白有什么区别明确 两者 and 溢出 自动 我对其进行了测试 功能的工作方式相同 有人会解释为什么这两者的工作方式相同吗 从我在一些文章和问题中看到的 Overflow auto 可以在内部有浮动的容器中使用 并且使用空 div
  • 使用一个 LINQtoSQL 语句返回不同的对象

    我有一个由员工和学生实施的IPerson 我什么really想要的就是你在下面看到的 一个 LINQ 语句即可获取每种类型的 IPerson 在我调用该方法之前 这非常有效 为什么我会收到错误 这是有道理的 但我真的很难找到一种合适的方法来
  • 如何使用 CSS 和 JavaScript 制作可更改的主题

    我对 CSS 和 JavaScript 还很陌生 我想知道您是否可以制作一个脚本来更改网站使用的样式表 说 你有一个绿色主题 所有东西都是绿色的 您会怎么做 以便用户可以通过按下按钮将其更改为红色 有谁知道如何做到这一点 您可以为链接标签设
  • 创建游戏插件时出现 SerpentAI 错误

    我最近安装了 SerpentAI 但在创建游戏插件时遇到了问题 运行命令时 serpent generate game 我提供以下答案 RaftWars 网页浏览器 What is the name of the game Titleize
  • 如何将跟踪信息保存到文件中

    我正在通过启用跟踪来跟踪我的 ASPX 页面web config
  • 何时对片段使用 onCreateView?

    我正在按照以下步骤操作 http developer android com training basics fragments creating html AddInLayout http developer android com tr
  • “Image Literal”命令在 Xcode 中不起作用

    我开始学习 swift 语言 有一个命令 Image Literal 可以添加图像 但它没有显示任何内容 除此之外 如果我尝试任何其他编码 它会自动得到建议 但图像文字根本不起作用 我正在使用 Xcode 13 任何线索都会非常有帮助 对于
  • Blazor客户端发送电子邮件

    我在 Razor 页面中包含了一个联系表单 以便用户可以在其中填写他的电子邮件 主题和正文 当他提交时 电子邮件会发送到我的电子邮件地址 我的代码看起来像这样example https learn microsoft com fr fr d
  • 为什么 C++11 允许 GC? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Swift - 查找字符串中两个位置之间的子字符串

    我有一个格式如下的字符串 XbfdASF FBACasc Piida bfedsSA XbbnSF vsdfAs 基本上它是一个 ID ID 然后又重复 我有第一个 ID 我需要找到它的合作伙伴示例 我有 Piida 我需要找到 之后紧随其
  • php 中的 mkdir() 将文件夹权限设置为 755 但我需要 777?

    我试图使用 php 在我的服务器上创建一个文件夹 当我将其设置为 0777 时 它显示为 755 mkdir create path 0777 谢谢 尝试这个 old umask umask 0 mkdir create path 0777
  • MongoDB $lookup 对带有引用 objectId 的对象数组进行查找

    我有订单集合 我正在从中获取数据 如下所示 id 628216b7b30bb8aa80c8fd1a promotionsDetails companyTotalPrice 27 promotionsData id 621de063bb5f9
  • 如何从函数标记的页面源代码中获取值?

    这是源代码中的函数 function dosubmit if getObj Frm Username value getObj errmsg innerHTML Username cannot be empty getObj myLayer
  • Android 互联网连接检查更好的方法

    根据 Android 开发者网站 确定和监控连接状态 https developer android com training monitoring device state connectivity monitoring html 我们可
  • ggplot2:scale_alpha() 的阈值

    是否可以指定色标的阈值 看这个例子 xy lt expand grid x 1 20 y 1 20 xyd lt data frame xy z runif 400 a rowSums xy 40 g lt ggplot xyd aes x
  • SharePoint 2007:如何限制字段级别的访问?

    是否可以在 SharePoint 2007 列表 MOSS 尽管我不认为这是企业版 中允许一个 SharePoint 组中的用户编辑某些字段中的值 而另一组中的用户编辑其他字段中的值 从我所做的所有搜索来看 这似乎是不可能的 因此作为后备
  • 当我们使用核心数据时,我们应该创建模型类吗?

    我正在开发一个 iPad 应用程序 如果用户无法访问互联网 则需要我在本地存储数据 然后与后端数据库同步 对于本地存储 我计划将 Core Data 与 SQLite 结合使用 我第一次使用 Core Data 它似乎检索实体并以字典的形式
  • 我需要一种人类可读且可解析的文档格式

    我正在从事其中一个项目 其中有一百万种更好的方法来完成我所需要的 但我别无选择 我必须这样做 这里是 有一个网络表单 当用户填写并点击提交时 将使用表单数据创建人类可读的文本文件 它看起来像这样 field 1 value for fiel
  • 将文件上传到 Google Cloud Storage:500 后端错误

    我们尝试将文件上传到 Google Cloud Storage 然后再将其移至 BigQuery 但在某些上传过程中 我们经常遇到 500 内部服务器错误 或 410 消失 原始消息如下 我们使用的是官方 SDK 并添加了指数退避重试 但错