Ich verwende das AWS Java SDK in meiner Spring Boot App. Derzeit, wenn ich die URL des s3 Objekt zurückgeben möchte ich verwenden:So ändern Sie das Format von S3Client.getURL
s3Client.putObject(new PutObjectRequest(S3_BUCKET_NAME, key,fileToUpload));
URL signedUrl = s3Client.getUrl(S3_BUCKET_NAME, key);
Und die signedUrl sieht wie folgt aus:
https://<my_bucket_name>.s3.eu-central-1.amazonaws.com/<my_key>
Das Problem ist, dass diese URL ungültig ist (es gibt HTTPS Fehler während der Verbindung). Im Moment kann ich meine benutzerdefinierte Domäne nicht konfigurieren und das Problem über die CloudFront-Konfiguration beheben.
Also meine Idee ist es, das andere Format auf dem SDK zu erzwingen. Etwas wie dieses:
https://s3.eu-central-1.amazonaws.com/<my_bucket_name>/<my_key>
Kann mir jemand in die richtige Richtung zeigen?
PS: Ich weiß, dass ich eine einfache ersetzen auf der URL tun kann, aber es ist keine elegante Lösung.
Was ist der HTTPS-Fehler, den Sie erhalten haben? Warum glauben Sie, dass ein anderes URL-Format das HTTPS-Problem abschwächen wird? – Anuruddha
Es schreit "Fehlercode: SSL_ERROR_BAD_CERT_DOMAIN". my_bucket_name.s3.eu-central-1.amazonaws.com verwendet ein ungültiges Sicherheitszertifikat. Mit ttps: //s3.eu-central-1.amazonaws.com kann ich das Problem mildern. – TheKalin
Versuchen Sie, auf diese URL in Firefox zuzugreifen? Hast du die URL in Chrome ausprobiert? Scheint, als gäbe es einen Bug mit Firefox https://support.mozilla.org/en-US/questions/1049026 – Anuruddha