AWS S3 arbeitet auf meinem localhost und auf meiner Live-Website, aber mein Entwicklungsserver (der GENAU die gleiche Konfiguration ist) wirft den folgenden Fehler: resulted in a
404 Not Found Antwort: Fehler beim Abrufen Anmeldeinformationen vom Instanzprofil-Metadatenserver.S3 putObject funktioniert nicht Zugriff verweigert
Localhost URL is http://localhost/example
Live URL is http://www.example.com
Development URL is http://dev.example.com
Warum würde dies auf localhost und live funktionieren, aber nicht auf meinem Entwicklungsserver?
Hier ist mein Beispielcode:
$bucket = 'example'
$s3Client = new S3Client([
'region'=>'us-west-2',
'version'=>'2006-03-01',
'key'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
'secret'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
]);
$uniqueFileName = uniqid().'.txt';
$s3Client->putObject([
'Bucket' => $bucket,
'Key' => 'dev/'.$uniqueFileName,
'Body' => 'this is the body!'
]);
Hier ist Politik:
{
"Version": "2012-10-17",
"Id": "Policyxxxxxxxxx",
"Statement": [
{
"Sid": "Stmtxxxxxxxxx",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::example/*"
}
]
}
Ich nehme an die xxx.xx.xxx.xx, die Sie redigiert haben, ist 169.254.169.254? –
Ja, das ist richtig – LargeTuna
Dies ist die Standard-IP-Adresse des virtuellen EC2-Metadatenservers, auf dem temporäre rollenbasierte richtlinienbasierte Anmeldeinformationen von Ihrer Anwendung oder von AWS-Bibliotheken abgerufen werden. Warum es auf localhost funktioniert, scheint ein großes Geheimnis zu sein, wenn alles identisch ist. Verwenden Sie Instanzenrollen? Sind die beiden EC2-Maschinen mit den gleichen Rollen konfiguriert? –