S3 доступ только к указанной папке c | клиент строитель - PullRequest
0 голосов
/ 03 марта 2020

У меня есть доступ только к указанной папке c в корзине S3. Для клиента S3 Builder я использовал следующий код для загрузки в корзину S3 в указанную папку.

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(region)
                .build();

(я запускаю код с сервера, который имеет доступ к S3, поэтому учетные данные не требуются, я смог чтобы просмотреть корзины и папки из cli)

putObjectRequest = new PutObjectRequest(awsBucketName, fileName, multipartfile.getInputStream(), null)

Я даже пытался указать имя корзины вместе с префиксом, потому что у меня есть доступ только к указанной папке c. Я получал access denied status 403. Поэтому для клиента S3 Builder я пытаюсь использовать конфигурацию конечной точки, а не просто указывать регион. Я получил следующую ошибку.

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withEndpointConfiguration(endpointConfiguration)
                .withClientConfiguration(new ClientConfiguration().withProtocol(Protocol.HTTP))
                .build();

com.amazonaws.SdkClientException: Unable to execute HTTP request: null
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1114)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1064)

Что мне делать или как проверить, правильно ли он сопоставляется с корзиной и папкой.

1 Ответ

0 голосов
/ 03 марта 2020

Я получил его, когда использовал предопределенный URL-адрес (см. aws документацию с предварительно назначенным URL-адресом, в котором также приведен пример кода java) для загрузки в папку, к которой у вас есть доступ (то есть у вас нет доступа для ведро)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...