Ich habe eine Java -App, die versucht, einen S3Client zu verwenden, um Dateien in einem S3 -Speicherplatz zu speichern. Dies durch Erstellen eines S3clients und der Überprüfung, dass ich die erwartete Liste der Eimer zurückerhalte. < /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>
Wenn ich versuche, tatsächlich eine Datei in einen der Eimer zu legen, erhalte ich jedoch den folgenden Fehler: < /p>
Software.amazon.awssdk.core .exception.sdkclientException: Erhalten Sie eine unbekannte HostException < /p>
Was ich nicht verstehe, ist der Grund, warum ich diesen bestimmten Fehler bekommen würde, da es anscheinend den gleichen Fehler bekommen hätte, wenn ich versuchte, das aufzulisten Eimer. < /p>
Dies ist mein Code, um eine Datei hochzuladen - was, wie Sie sehen können Listen Sie die Eimer auf. < /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>
, aber sobald es an s3client erreicht ist. Eine Datei, aber nicht, wenn Sie nur die vorhandenen Eimer auflisten?
Danke
Der Amazon S3 -Client kann keine Buckets auflisten, sondern wirft eine unbekannte HostException aus, wenn Sie versuchen, ⇐ Java
-
- Similar Topics
- Replies
- Views
- Last post