Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 使用Rest Assured将CSV文件上载到S3_Amazon S3_Rest Assured - Fatal编程技术网

Amazon s3 使用Rest Assured将CSV文件上载到S3

Amazon s3 使用Rest Assured将CSV文件上载到S3,amazon-s3,rest-assured,Amazon S3,Rest Assured,我试图复制一个postman put请求,其中它在代码给定的S3位置上传一个csv文件 url类似于 查询参数为{X-Amz-Date=2020026T113914z,X-Amz-Algorithm=AWS4-HMAC-SHA256,X-Amz-Signature=,X-Amz-SignedHeaders=content type%3Bhost,X-Amz-Security-Token=,X-Amz-Credential=ASIAV7AYOYCBQB4VDGD7%2F20200226%2Fus-

我试图复制一个postman put请求,其中它在代码给定的S3位置上传一个csv文件

url类似于

查询参数为
{X-Amz-Date=2020026T113914z,X-Amz-Algorithm=AWS4-HMAC-SHA256,X-Amz-Signature=,X-Amz-SignedHeaders=content type%3Bhost,X-Amz-Security-Token=,X-Amz-Credential=ASIAV7AYOYCBQB4VDGD7%2F20200226%2Fus-east-1%2Fs3%2Faws4\u请求,X-Amz-Expires=3600}

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

我已经访问并尝试了这些链接

我的代码就像

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

由于您在正文中以二进制文件的形式传递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();