首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Backblaze B2 API和OpenFeign上传文件

使用Backblaze B2 API和OpenFeign上传文件
EN

Stack Overflow用户
提问于 2022-05-25 19:44:19
回答 1查看 107关注 0票数 1

我在OpenFeign中使用Spring,并且我试图上传一个文件来备份B2。

我已经让b2_authorize_accountb2_get_upload_url端点工作了。现在我正试图向b2_upload_file发送一个请求。

我为冒充客户端请求提供的代码是

代码语言:javascript
复制
@PostMapping()
String b2UploadFile(URI uri,
                    @RequestHeader("Authorization")     String uploadUrlToken,
                    @RequestHeader("X-Bz-File-Name")    String fileName,
                    @RequestHeader("Content/Type")      String contentType,
                    @RequestHeader("X-Bz-Content-Sha1") String contentSha1,
                    byte[] file);

当我执行代码时,我会得到一个java.net.SocketException: Connection reset异常。我认为服务器正在关闭连接。

我用Postman测试了端点,它可以工作,我可以上传我的文件。

我应用了相同的头和值,Postman和OpenFeign之间的区别是,在Postman中,我单击了Body ->二进制->上传文件,在OpenFeign中,我使用没有任何注释的byte[]传递文件。

在API文档中,它还说我需要Content-Length头,但是当我将它包含在OpenFeign中时,我将得到一个数字格式的异常。我无法解决这个问题,但是根据我所读到的,OpenFeign应该自动完成这个任务。我也没有包括邮递员的标题,它仍然工作,因为邮递员也包括在默认情况下,所以我不认为这是问题。

我尝试过用@RequestBody byte[] file对文件进行注释,使其成为一个多部分文件,使用文件类型,使用字符串类型,使用输出流和输入流。

API说:

不允许使用JSON参数。要上载的文件是消息体,不以任何方式进行编码。它不是URL编码的。它不是MIME编码的.

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-05-26 06:55:19

来自评论中的讨论

OpenFeign不允许直接设置Content-Type头,因此必须指定:

代码语言:javascript
复制
@PostMapping(consumes = "b2/x-auto", produces = "application/json")

原始答案:

在你发布的代码中,

代码语言:javascript
复制
@RequestHeader("Content/Type")      String contentType,

应该是

代码语言:javascript
复制
@RequestHeader("Content-Type")      String contentType,
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72383360

复制
相关文章

相似问题

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