как загрузить файл в общедоступную корзину AWS S3 с помощью Java Apache HttpClient - PullRequest
1 голос
/ 06 мая 2019

Дано: AWS S3 Bucket с именем YOUR_BACKET_NAME с открытым доступом READ / WRITE

Необходимо загрузить файл в общедоступную корзину S3.

Использование только самых популярных Java-библиотек, таких как Apache HTTP Client lib.

Не следует использовать AWS SDK.

1 Ответ

3 голосов
/ 06 мая 2019
    @Test
public void upload_file_to_public_s3_with_httpClient() throws Exception {

    String fileName = "test.txt";
    String bucketName = "YOUR_BACKET_NAME";
    String s3url = "https://" + bucketName + ".s3.amazonaws.com/" + fileName;
    String body = "BODY OF THE FILE";

    HttpEntity entity = MultipartEntityBuilder
            .create()
            .setMode(HttpMultipartMode.BROWSER_COMPATIBLE)
            .addBinaryBody("file", body.getBytes())
            .build();

    HttpResponse returnResponse = Request.Put(s3url).body(entity).execute().returnResponse();
    StatusLine statusLine = returnResponse.getStatusLine();
    String responseStr = EntityUtils.toString(returnResponse.getEntity());
    log.debug("response from S3 : line: {}\n body {}\n ", statusLine, responseStr);
}
...