Используйте AWS Java SDK для чтения текстового файла из S3

Я пытаюсь прочитать текстовый файл из хранилища объектов AWS S3 (а затем отправить его через http клиенту). У меня есть команда AWS CLI, которая копирует файл локально, но как это сделать с помощью SDK? Я хочу прочитать содержимое в виде строки и избежать сохранения в виде файла, а затем прочитать его обратно.

В CLI я создаю профиль с ключами (только один раз):

aws configure --profile cloudian

Который затем задает такие вопросы, как AWS Access Key ID [None]: и тому подобное. И затем мне нужно запустить эту команду, чтобы получить файл:

aws --profile=cloudian --endpoint-url=https://s3-abc.abcstore.abc.net s3 cp s3://abc-store/STORE1/abc2/ABC/test_08.txt test.txt

person Tina J    schedule 02.04.2020    source источник
comment
github.com/awsdocs/aws-doc-sdk-examples/blob/master/java/ Это точный пример, и вы должны хранить ключ и секрет в своем профиле пользователя или в файл свойств.   -  person Red Boy    schedule 02.04.2020
comment
Но этот спрашивает имя ведра. У меня есть конечная точка, плюс нужно скопировать ее локально.   -  person Tina J    schedule 02.04.2020


Ответы (1)


Для чтения объекта S3 с использованием SDK:

String s3Key ="";
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(region).build();
s3Key = URLDecoder.decode("s3Key", "UTF-8");
String s3BuckerName="Your Bucket Name";
S3Object object = s3Client.getObject(new GetObjectRequest(s3BuckerName, s3Key));
S3ObjectInputStream inputStream = object.getObjectContent();

Вы можете получить контент с помощью приведенного выше кода. И я не понял второй части вашего вопроса, вы хотите куда-то отправить эти данные?

person code_scvanger    schedule 29.04.2020