当前位置: 首页 > 知识库问答 >
问题:

使用“放心”将 CSV 文件上传到 S3

暨宸
2023-03-14

我正在尝试复制一个邮递员放置请求,其中它正在代码给出的S3位置上传csv文件。

网址就像https://us-east-1-e9qpbo283.s3.amazonaws.com/bulk-bucket/a4894e7b-7e42-4fcc-9f84-e7n00db6d581/input/file

查询参数为{X-Amz-Date=20200226T113914Z,X-Amz-Algorithm=AWS4-HMAC-SHA256,X-Amz Signature=

但我总是收到400个坏请求。请求也不需要任何其他身份验证令牌。有人能帮我一下吗。

我已经访问并尝试了链接

使用放心多部分上传文件到S3

https://groups.google.com/d/topic/rest-assured/MPzbiozclqg

https://github.com/rest-assured/rest-assured/issues/627

我的代码就像

File uploadFile = new File("/home/beast/Downloads/locations.csv");

RequestSpecification request = given().urlEncodingEnabled(false).              
 config(RestAssured.config().encoderConfig(EncoderConfig.encoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false)))
                .multiPart("file", uploadFile, "csv");
Response r = request.put(URL);

PS:错误为签名不匹配。


共有1个答案

赵宏达
2023-03-14

由于您将CSV作为二进制文件在正文中传递,因此您只需打开该文件并在正文中进行传递,如下例所示:

  RestAssured.urlEncodingEnabled = false;
    File uploadFile = new File("COMPLETE_FILE_PATH");
    Response response = given().contentType("text/csv")              .config(RestAssured.config().encoderConfig(EncoderConfig.encoderConfig().appendDefaultContentCharsetToContentTypeIfUndefined(false)))
                    .body(uploadFile)
                    .when()
                    .put(uploadUrl)
                    .then().extract().response();
 类似资料:
  • 我正在尝试向S3发出上传请求,以便上传一个文件。在我目前掌握的最可靠的代码下面, 我总是从服务器收到400(错误请求)。我不确定我是否正确使用了多部分上传。 但是当我使用像POSTMAN这样的任何Rest客户端做同样的事情时,它工作得很好, 这将是有帮助的,如果有人可以抛出一些光在多部分上传放心。 我已经查看了以下链接, 放心文档 放心的示例 编辑1: 我试着将上面的邮递员请求转换成curl,并用

  • 我写了一个可以上传文件到服务器的服务,现在我正在放心地编写它的集成测试。功能代码如下: 如果我添加标题信息“content-type=multipart/form-data”,我将得到这样的消息:“400-Request不是一个多部分请求,有关更多信息,请参见详细信息”。这部分也让我感到困惑,因为在上面的图像中,您可以看到我正在发送一个“表单数据”文件,这怎么可能不是一个多部分请求呢? 不管怎样,

  • 如有任何帮助,不胜感激。

  • 问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示

  • 问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依

  • 问题内容: 是否可以使用http put方法将本地文件上传到保管箱?我正在上传文件,但没有文件?(“字节”:0) 如何向文件添加内容? 我的代码如下: 我的文件已成功上传,但没有内容?它是空的!该文档对我来说有点困惑:https : //www.dropbox.com/developers/core/docs#files_put 问题答案: @smarx:我正在发送一个空的HTTP PUT请求,最