【发布时间】:2020-05-15 19:39:53
【问题描述】:
我需要实现一个部署流水线,在流水线的最后,我们正在上传一个文件,在这种情况下,是上传到华为的应用商店。但是对于大小超过 5 兆字节的文件,我们必须使用分块 API。我不熟悉分块上传的工作原理。有人可以给我一个实现指南,最好是在java中如何实现这种机制? API参数如下:
编辑: 作为对下面评论的回应,让我澄清我的问题。查找有关如何执行分块请求的一些参考资料,诸如 httpclient 和 okhttp 之类的库只是将块标志设置为 true,并且似乎对库的客户端隐藏了详细信息:
然而,API 的输入参数似乎希望我手动管理块,因为它需要 ChunkSize 和序列号。我在想我可能需要使用普通的 java http 接口来使用 API,但是我找不到任何好的资源来让我开始。如果有人可以给我参考或实施指导,那肯定会有所帮助。
更多更新: 我试图手动将我的文件分成几个部分,每个部分的大小为 1 兆字节。然后我想我可以尝试使用 multipart/form-data 为每个块调用 API。但是服务器端总是在写入之前关闭连接,导致:Connection reset by peer: socket write error。
这应该不是代理问题,因为我已经设置好了,我可以毫无问题地获取令牌、url和验证码。
【问题讨论】:
-
是啊,为什么不问问华为呢?另外,您在编码方面的努力在哪里?
-
是的,如果我能得到华为的直接支持,我会很高兴如何实现这一点,但我没有。但我很确定分块请求不是华为的专有技术,所以我相信这个社区至少可以帮助我指出正确的方向。这不正是这个论坛存在的原因吗?为什么这么多法官?我仍在修补它,如果我能在得到任何答案之前设法解决它,我肯定会分享答案。但是如果有经验的人能告诉我如何用 5 分钟的写作来解决,不也是对社区的好处吗?
-
您的问题缺乏代码和主动性。这里的人通常很乐意帮助解决错误,但您或多或少地要求教程和/或有人为您完成工作。据我了解,这不是stackoverflow的目的。
标签: java huawei-mobile-services chunked