- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 python 的 google-cloud
客户端从 Google Cloud Storage (GCS) 下载文件,出现以下错误:
File "/deploy/app/scanworker/storagehandler/gcshandler.py" line 62 in download_object
blob.download_to_file(out_file)
File "/usr/local/lib/python3.5/dist-packages/google/cloud/storage/blob.py" line 464 in download_to_file self._do_download(transport, file_obj, download_url, headers)
File "/usr/local/lib/python3.5/dist-packages/google/cloud/storage/blob.py" line 418 in _do_download
download.consume(transport)
File "/usr/local/lib/python3.5/dist-packages/google/resumable_media/requests/download.py" line 169 in consume
self._write_to_stream(result)
File "/usr/local/lib/python3.5/dist-packages/google/resumable_media/requests/download.py" line 132 in _write_to_stream [args] [locals]
raise common.DataCorruption(response, msg)
DataCorruption: Checksum mismatch while downloading:
https://www.googleapis.com/download/storage/v1/b/<my-bucket>/o/<my-object>?alt=media
The X-Goog-Hash header indicated an MD5 checksum of:
fdn2kKmS4J6LCN6gfmEUVQ==
but the actual MD5 checksum of the downloaded contents was:
C9+ywW2Dap0gEv5gHoR1UQ==
我使用以下代码从 GCS 下载 blob:
bucket_name = '<some-bucket>'
service_account_key = '<path to json credential file>'
with open(service_account_key, 'r') as f:
keyfile = json.load(f)
project_id = keyfile['project_id']
credentials = service_account.Credentials.from_service_account_file(service_account_key)
client = storage.Client(project=project_id,
credentials=credentials)
bucket = client.get_bucket(bucket_name)
blob_name = '<name of blob>'
download_path = "./foo.obj"
blob = bucket.blob(blob_name)
with open(download_path, "w") as out_file:
blob.download_to_file(out_file) # it fails here
一些信息:
此外,我似乎无法在我的本地桌面上重现该错误,无法从我的 Docker 容器下载失败的相同文件。
这是客户端库的错误吗?或者可能是网络问题?尝试下载不同的文件,所有文件都从 Kubernetes 给出相同的错误。相同的代码已经运行了几个月没有问题,现在只看到这个错误。
编辑:
使用与之前完全相同的代码重建 Docker 容器似乎解决了问题。不过,我仍然很好奇最初导致错误的原因。
编辑 2:我们使用 circleci 将 webapp 部署到生产环境。现在看起来在 circleci 上构建的图像失败了,而在本地构建它似乎确实有效。由于它包含在 Docker 容器中,这真的很奇怪,我们从哪里构建它应该无关紧要吧?
编辑 3:登录到 kubernetes 中出现上述错误的同一个容器,我尝试运行 gsutil cp gs:/<bucket>/<blob-name> foo.obj
这运行没有任何问题
最佳答案
正如 Mike 在评论中指出的:这是 google-resumable-media
库 0.3.0 版的问题。 (请参阅此处的问题:https://github.com/GoogleCloudPlatform/google-resumable-media-python/issues/34)
在我们的 pip 的 requirements.txt
中指定 google-resumable-media==0.2.3
完成了这项工作!
从我的桌面构建的 Docker 镜像中没有出现错误的原因是我使用旧版本的 google-resumable-media
缓存了图像。
关于python - GCS - 数据损坏 : Checksum mismatch while downloading,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46804668/
equal() 算法可以告诉我们两个序列是否匹配。mismatch() 算法也可以告诉我们两个序列是否匹配,而且如果不匹配,它还能告诉我们不匹配的位置。 mismatch() 的 4 个版本和 equ
我只是想在 emacs 中自定义一些 org-mode 导出设置,所以我做了 M-xcustomize-group组织导出 html。这是由 Customize buffer 提出的,除其他外,我着手
我正在尝试通过 ColdFusion 使用基于 HTTPS 的 SOAP WebService,但它返回“连接失败”。 在转储结果变量时,它显示: 错误详细信息:“I/O 异常:证书‘subdomai
我想匹配表单的输入:: commit a1b2c3 Author: Michael commit d3g4 Author: David 这是我写的语法: grammar commit; file
我正在尝试根据《Doing Bayesian Data Analysis: A Tutorial with R, JAGS, and Stan (2015)》一书来学习贝叶斯分析。 这本书里有例子。所
我有一些使用 java 泛型的类,一切都工作正常,直到我向类层次结构添加了一些附加层。 我想知道问题是否与“类型删除”有关,但我不确定如何表达继承来消除这个问题。 类定义: public interf
我正在尝试向我的应用程序添加一种语言,它一直运行到现在。经过一天尝试了解发生了什么,我放弃了。 这是我的问题: 我的基本语言是英语(开发语言),我的其他语言是法语。我在 Main.storyboard
我最近开始在 Go 中使用模块,但我经常遇到这样的问题,即在一台机器上一切正常,但在另一台机器上构建代码库时遇到校验和不匹配。 问题总是涉及相同的第三方依赖(github.com/ericlagerg
今天在用织梦系统搭建新站,在系统基本参数设置好了之后,像往常那样点击【确定】这个按钮,没想到却出现了Token mismatch!的提示,系统的基本参数无法改变,后经过查询,将出现Token mis
题目地址:https://leetcode.com/problems/set-mismatch/description/open in new window 题目描述 Theset S origi
在看似简单的任务上陷入了极大的困境...当我尝试隐藏 时出现类型不匹配错误多个 使用此代码的列.. 有什么更好的建议吗? 问候, Sub Hider() Sheets("Data So
大家好,我收到一个编译错误:类型不匹配。在下面的代码中。我希望你们能帮助我。谢谢! Private Sub cmbBusId_AfterUpdate() With Me .txtStOdo = App
我最近遇到了一条我从未见过的借用检查器消息,我试图理解它。这是重现它的代码(简化的,现实生活中的例子更复杂)- playground : fn foo(v1: &mut Vec, v2: &mut V
我尝试编写代码以打印Z字符。 zzzzzzz z z z z z zzzzzzz 但是当我编译这段代码时,它会抛出 D:\erlang\graphics>erlc zee
Sub Reset_Bet() Application.ScreenUpdating = False Sheets("Bet Angel").Select
我很难弄清楚这段应该是基本的代码片段出了什么问题。我想知道是否有人可以帮助我。任何想法都将非常感激,我对 VBA 还很陌生。 我的代码是: Dim table() as Variant: ta
我只是想从键盘读取整数、 double 、字符串值。它对于整数和 double 工作正常。但当涉及到字符串时,它会抛出输入不匹配异常,因此我无法从键盘读取字符串。 import java.util.S
给定一个学生花名册文件,其中第一行是类(class)中的学生人数,在接下来的几行中,我提供了他们的姓名、ID 和年龄,如下所示: 5 Mary, 1010, 15 Ben, 1
Android资源编译失败C:\Users\TTP\AndroidStudioProjects\TicCrossGame\app\src\main\res\layout\activity_main.x
found : (Int, String, Option[java.lang.String]) required: (Int, String, Option[java.lang.String])
我是一名优秀的程序员,十分优秀!