Как добавить учетные данные в S3AsyncClient при загрузке - PullRequest
0 голосов
/ 14 января 2020

Это AWS Java пример кода для asyn c загрузка на S3:

S3AsyncClient client = S3AsyncClient.create();
CompletableFuture<PutObjectResponse> future = client.putObject(
PutObjectRequest.builder()
.bucket(BUCKET)
.key(KEY)
.build(),
AsyncRequestBody.fromFile(Paths.get("myfile.in"))
);
future.whenComplete((resp, err) -> {
try {
if (resp != null) {
System.out.println("my response: " + resp);
} else {
// Handle error
err.printStackTrace();
}
} finally {
// Lets the application shut down. Only close the client when you are completely done with it.
client.close();
}
});

Я немного поработал, но просто любопытно, почему вы можете загружать на корзина (которая заблокировала весь доступ publi c включен) без учетных данных?

Тогда по какой-то причине мой ключ доступа был удален, и мне пришлось восстановить новый, но теперь я получаю

software.amazon.awssdk.services.s3.model. S3Exception: AWS Идентификатор ключа доступа, который вы указали, не существует в наших записях. (Услуга: S3, код состояния: 403, идентификатор запроса: 2FC0CEEB338D50CB)

. Спасибо.

1 Ответ

0 голосов
/ 05 февраля 2020

Попробуйте и посмотрите, работает ли он у вас:

        AwsCredentialsProvider creds = StaticCredentialsProvider.create(AwsBasicCredentials.create("my_access_key", "my_secret_key"));
        S3AsyncClient s3Client;
        try {
            s3Client = S3AsyncClient.builder().credentialsProvider(creds)
                    .region(Region.US_WEST_1)
                    .endpointOverride(new URI("https://abc.xyz.com:9021"))
                    .build();
            CompletableFuture<PutObjectResponse> futureGet = s3Client.putObject(
                    PutObjectRequest.builder()
                            .bucket("my_bucket_name")
                            .key("/somepath/anotherpath/myData.pdf")
                            .build(),
                            AsyncRequestBody.fromFile(Paths.get("myfile.in")));
            futureGet.get();
        } catch (URISyntaxException e1) {
            e1.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...