【问题标题】:Uploading CSV File to S3 using Rest Assured使用 Rest Assured 将 CSV 文件上传到 S3
【发布时间】:2020-06-10 09:15:30
【问题描述】:

我正在尝试复制一个邮递员 put 请求,它在代码给出的 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=<Some Signature>, X-Amz-SignedHeaders=content-type%3Bhost, X-Amz-Security-Token=<SOME TOKEN HERE>, X-Amz-Credential=ASIAV7AYOYCBQB4VDGD7%2F20200226%2Fus-east-1%2Fs3%2Faws4_request, X-Amz-Expires=3600}

但我总是收到 400 个错误请求。该请求也不需要任何其他身份验证令牌。有人可以帮我弄这个吗。

我已经访问并尝试了链接

Uploading file to S3 using Rest Assured multipart

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:错误是签名不匹配。

【问题讨论】:

    标签: amazon-s3 rest-assured


    【解决方案1】:

    由于您将 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();
    

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 2019-01-17
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2017-06-03
      相关资源
      最近更新 更多