У меня есть приложение Java, которое пытается использовать S3Client для сохранения файлов в пространство для хранения S3. < /p>
После небольшого проб и ошибок я смог подключиться и доказать Это путем создания S3Client и проверки я возвращаю ожидаемый список ведер. < /p>
String accessKeyId = "MyAccessKeyId";
String secretAccesskey = "MySecretAccessKey";
StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(
AwsBasicCredentials.create(accessKeyId, secretAccesskey));
// Create S3 client
S3Client s3Client = S3Client.builder()
.credentialsProvider(credentialsProvider)
.region(Region.US_EAST_1)
.endpointOverride(URI.create("https://cees3.bhinc.gov:10444"))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.build())
.build();
//I've verified that I'm getting back an expected list of buckets
ListBucketsResponse listBucketsResponse = s3Client.listBuckets();
< /code>
Когда я пытаюсь фактически разместить файл в одно из ведер, однако я получаю следующую ошибку: < /p>
software.amazon.awssdk.core .exception.sdkclientexception: получил неизвестное hostexception < /p>
Чего я не понимаю, так это то, почему я бы получил эту конкретную ошибку, так как, похоже, я получил бы ту же ошибку, пытаясь перечислить ведра. < /p>
Это мой код, чтобы попытаться загрузить файл - который, как вы можете видеть Перечислите ведра. < /p>
String accessKeyId = "MyAccessKeyId";
String secretAccesskey = "MySecretAccessKey";
StaticCredentialsProvider credentialsProvider = StaticCredentialsProvider.create(
AwsBasicCredentials.create(accessKeyId, secretAccesskey));
// Create S3 client
S3Client s3Client = S3Client.builder()
.credentialsProvider(credentialsProvider)
.region(Region.US_EAST_1)
.endpointOverride(URI.create("https://cees3.bhinc.gov:10444"))
.overrideConfiguration(ClientOverrideConfiguration.builder()
.build())
.build();
String bucketName = "testbucket2";
String testFilePath = "C:\\Users\\charlie\\Downloads\\test.png";
// Upload a file
File file = new File(testFilePath);
try (FileInputStream fileInputStream = new FileInputStream(file)) {
String fileExtension = Files.probeContentType(Paths.get(testFilePath));
PutObjectRequest request = PutObjectRequest.builder()
.bucket(bucketName)
.key(accessKeyId)
.contentType(fileExtension)
.build();
// Get the file content as a byte array
byte[] bytes = fileInputStream.readAllBytes();
s3Client.putObject(request, RequestBody.fromBytes(bytes));
System.out.println("File uploaded successfully: " + "test.png");
} catch (IOException e) {
System.err.println("Error uploading file: " + e.getMessage());
}
< /code>
Но как только он достигнет s3client.putObject, он бросает неизвестное хосткспенция. Файл, но не когда просто перечисляет существующие ведра?
Спасибо
Подробнее здесь: https://stackoverflow.com/questions/794 ... when-tryin
Клиент Amazon S3 не может перечислить ведра, но бросает неизвестное хосткспений при попытке сделать PutoBject ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Невозможно выполнить ошибку HTTP -запроса при попытке перечислить ведра для клиента Amazons3
Anonymous » » в форуме JAVA - 0 Ответы
- 73 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Невозможно выполнить ошибку HTTP -запроса при попытке перечислить ведра для клиента Amazons3
Anonymous » » в форуме JAVA - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-