Schritt 1: Holen Sie sich die neuesten aws-java-sdk
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.660</version>
</dependency>
Schritt 2: Die richtigen Importe
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.regions.Region;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3Client;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
Wenn Sie sicher , dass der Eimer vorhanden sind, Specified key does not exists error
würde bedeuten , die bucketname nicht ist Dinkel richtig (enthält Slash oder Sonderzeichen). Informationen zur Namenskonvention finden Sie in der Dokumentation .
Das Dokument zitiert:
Wenn das angeforderte Objekt im Bucket verfügbar ist und Benutzer weiterhin den 404 NoSuchKey-Fehler von Amazon S3 erhalten, überprüfen Sie Folgendes:
Stellen Sie sicher, dass die Anforderung genau mit dem Objektnamen übereinstimmt, einschließlich der Großschreibung des Objektnamens. Bei Anforderungen für S3-Objekte wird zwischen Groß- und Kleinschreibung unterschieden. Wenn beispielsweise ein Objekt den Namen myimage.jpg trägt, Myimage.jpg jedoch angefordert wird, erhält der Anforderer einen 404 NoSuchKey-Fehler. Stellen Sie sicher, dass der angeforderte Pfad mit dem Pfad zum Objekt übereinstimmt. Wenn der Pfad zu einem Objekt beispielsweise awsexamplebucket / Downloads / February / Images / image.jpg lautet, der angeforderte Pfad jedoch awsexamplebucket / Downloads / February / image.jpg lautet, erhält der Anforderer einen 404 NoSuchKey-Fehler. Wenn der Pfad zum Objekt Leerzeichen enthält, stellen Sie sicher, dass die Anforderung die richtige Syntax verwendet, um den Pfad zu erkennen. Wenn Sie beispielsweise die AWS-CLI zum Herunterladen eines Objekts auf Ihren Windows-Computer verwenden, müssen Sie den Objektpfad in Anführungszeichen setzen, ähnlich wie: aws s3 cp "s3: // awsexamplebucket / Sicherungskopiejob 4 / 3T000000.vbk". Optional können Sie die Serverzugriffsprotokollierung aktivieren, um Anforderungsdatensätze detaillierter auf Probleme zu überprüfen, die möglicherweise den 404-Fehler verursachen.
AWSCredentials credentials = new BasicAWSCredentials(AWS_ACCESS_KEY_ID, AWS_SECRET_KEY);
AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build();
ObjectListing objects = s3Client.listObjects("bigdataanalytics");
System.out.println(objects.getObjectSummaries());