首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >以块发送文件总是在第十个块处崩溃。

以块发送文件总是在第十个块处崩溃。
EN

Stack Overflow用户
提问于 2014-03-13 19:18:31
回答 1查看 57关注 0票数 0

我的超简单方法有个奇怪的问题。它向外部API发送4MB块的文件。问题是,总是在第10块,外国API崩溃。

调试API错误是不可能的,但它说:The specified blob or block content is invalid (那个API是Azure,但它现在并不重要,问题显然在我这一边)。

因为它在第10个元素(40兆字节)崩溃,所以测试它和“手工”调试它很痛苦(部分原因是我的互联网连接速度不好),所以我决定分享我的方法。

代码语言:javascript
复制
def upload_chunk()
  file_to_send = File.open('file.mp4', 'rb')

  until file_to_send.eof?
    @content = file_to_send.read 4194304 # Get 4MB chunk
    upload_to_api(@content) # Line that produces the error
  end
end

你能看到任何东西吗,这可能是错误的代码?请记住,它总是在第10次崩溃,并完美地工作大小小于40 MB的文件。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-13 19:29:57

我搜索了ruby "The specified blob or block content is invalid",发现这是第二个链接(第一个是这个页面):

http://cloud.dzone.com/articles/azure-blob-storage-specified

其中包括:

如果您通过将blobs分割成块来上传blobs,并且得到上述错误,将确保您的块If的长度相同。如果您的块的块If是不同的长度,则会出现此错误。

因此,我的第一个猜测是,对upload_to_api的调用是从1-9分配id,然后当它到达10时,id长度就会增加,从而导致问题。

如果您无法控制If的生成方式,那么也许可以将每次迭代中读取的字节数设置为不超过文件大小的1/9。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22388753

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档