Функция s3client's headobject () возвращает 404, когда ключ создан и присутствует.JAVA

Программисты JAVA общаются здесь
Anonymous
Функция s3client's headobject () возвращает 404, когда ключ создан и присутствует.

Сообщение Anonymous »

У меня есть приложение Java, которое проверяет существование ключей AWS в моем ведре S3. Я делаю это, чтобы проверить, существует ли ключ, прежде чем пытаться извлечь файлы из местоположения (поскольку файлы имеют непредсказуемые имена, мне нужно проверить ключ местоположения вместо определенного файла). Я использую .HeadObject () Функция клиента S3 для достижения этого. Код такой: < /p>

Код: Выделить всё

private static S3Client s3Client;
public static void main(String[] args) throws Exception {
s3Client = S3Client
.builder()
.region(Region.of("us-east-2"))
.credentialsProvider(EnvironmentVariableCredentialsProvider.create())
.build();
try {
s3Client.headObject(
HeadObjectRequest.builder().bucket("myBucket").key("locKey/key/").build());
System.out.println("It exists");
} catch (NoSuchKeyException e) {
System.out.println("It does not exists");
}
}
он работает, если ключ создается вручную (то есть с помощью опции Create Folder ) в AWS. Но это не работает, если что -то еще создает один и тот же ключ (например, если я загружаю файл в S3 без ключа, существующего заранее, скажем, через DataBricks, ключ будет создан вместе с файлом). Мой вопрос: почему? < /P>
Это известная проблема? Есть ли конфигурация, которую я не учитываю? Зачем HeadObject () правильно идентифицировать, существует ли ключ, когда он был создан вручную, но выбросит исключение, если ключ был сгенерирован чем -то другим (несмотря на то, что этот ключ присутствует)?

Подробнее здесь: https://stackoverflow.com/questions/796 ... ted-presen

Вернуться в «JAVA»