aws-S3-400 Bad Request
Ich bin versucht zu verengen die folgenden 400 Bad Request Fehler:
com.amazonaws.services.s3.model.AmazonS3Exception: Bad Request (Service: Amazon S3; Status Code: 400; Error Code: 400 Bad Request; Request ID: 7FBD3901B77A07C0), S3 Extended Request ID: +PrYXDrq9qJwhwHh+DmPusGekwWf+jmU2jepUkQX3zGa7uTT3GA1GlmHLkJjjjO67UQTndQA9PE=
at com.amazonaws.http.AmazonHttpClient.handleErrorResponse(AmazonHttpClient.java:1343)
at com.amazonaws.http.AmazonHttpClient.executeOneRequest(AmazonHttpClient.java:961)
at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:738)
at com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java:489)
at com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:448)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:397)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:378)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4039)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1177)
at com.amazonaws.services.s3.AmazonS3Client.getObjectMetadata(AmazonS3Client.java:1152)
at com.amazonaws.services.s3.AmazonS3Client.doesObjectExist(AmazonS3Client.java:1212)
at com.abcnews.apwebfeed.articleresolver.APWebFeedArticleResolverImpl.makeS3Crops(APWebFeedArticleResolverImpl.java:904)
at com.abcnews.apwebfeed.articleresolver.APWebFeedArticleResolverImpl.resolve(APWebFeedArticleResolverImpl.java:542)
at sun.reflect.GeneratedMethodAccessor62.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.xfire.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:54)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler.sendMessage(ServiceInvocationHandler.java:322)
at org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.run(ServiceInvocationHandler.java:86)
at java.lang.Thread.run(Thread.java:662)
Bin ich etwas testen, wie sich damit als:
boolean exists = s3client.doesObjectExist("aws-wire-qa", "wfiles/in/wire.json");
Ich manuell Hinzugefügt, die wfiles/in/Draht.json-Datei. Ich wieder wahr, wenn ich diese Zeile in einem lokalen app. Aber in einem separaten remote service wirft es den oben genannten Fehler. Ich verwenden die gleichen Anmeldeinformationen innerhalb des Dienstes als ich in meine lokale app. Ich habe auch set Eimer "Enable website hosting", aber kein Unterschied.
Meine Berechtigungen sind so eingestellt, wie:
Grantee: Any Authenticated AWS User
y List
y Upload/DeleteView
y PermissionsEdit Permissions
So, ich dachte der Fehler könnte in Bezug auf, nicht eine Politik, die auf die Eimer und erstellt eine policy-Datei auf dem Eimer für GET/PUT/DELETE, Objekte, aber ich bin noch immer der gleiche Fehler. Meine Politik wie folgt Aussehen:
{
"Version": "2012-10-17",
"Id": "Policy1481303257155",
"Statement": [
{
"Sid": "Stmt1481303250933",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::755710071517:user/law"
},
"Action": [
"s3:DeleteObject",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "arn:aws:s3:::aws-wire-qa/*"
}
]
}
Mir wurde gesagt, es kann nicht eine firewall oder ein proxy-Problem. Was ich sonst noch versuchen könnte? Die Fehlermeldung ist sehr unspezifisch. Und bisher habe ich nur die lokale Entwicklung, so habe ich keine Ahnung, was wir sonst nicht hier eingestellt. Wäre viel zu schätzen, hier etwas Hilfe.
Sie sind absolut richtig, ich wurde getestet, früher mit einem anderen Eimer und nicht verwaltet region ändern. Vielen Dank! Direkt am Ziel!
Berechtigungen Probleme wurden schnell ausgeschlossen, weil das sollte
403 Forbidden
... ich bin froh, dass es behoben, aber ehrlich gesagt, das war nur eine intuitive Vermutung-eine Möglichkeit unter mehreren, die bewirken könnten, dass ein 400 Bad Request
Antwort. Ich würde gerne glauben, dass das Java-SDK bietet einen Mechanismus, um den Zugriff auf die response-Header und Körper, weil die Informationen, die es sein sollte, und das wäre für eine legitime und nützliche Antwort.Ich bin kein Java-Entwickler, also kann ich noch keine Ahnung, was ich verlange, aber ich fand dieser, so Frage ich mich... mit diesem ist es möglich für Sie zu verwenden
getErrorResponseXml()
zum extrahieren der XML-Fehler, die von der exception?InformationsquelleAutor user2917629 | 2016-12-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
In meinem Fall war das eine-region-Problem!
Ich hatte zu entfernen, die region, aus der elasticsearch.yml und setzen Sie den Befehl. Wenn ich nicht entfernen Sie die region aus der yml-Datei, elastisch nicht mehr starten (mit der neuesten s3-repository-plugin)
Auch die region Fehler für mich, aber interessanterweise ist die Datei immer noch zeigte sich gut in S3. Gehen Abbildung.
Region Fehler +1
InformationsquelleAutor true_gler
Mit Fiddler habe ich gesehen, dass meine url war falsch.
Brauchte ich nicht zu verwenden ServiceURL-Eigenschaft und die config-Klasse, stattdessen habe ich diese Konstruktor für die Kunden, Ihre region als Dritten parameter.
InformationsquelleAutor Ronen Festinger
Auch ich hatte den gleichen Fehler und später gefunden, dass dies durch ein Problem mit der proxy-Einstellung. Nach dem deaktivieren der proxy in der Lage war, den upload auf S3 in Ordnung.
InformationsquelleAutor raj vivid