Aws PHP-Sdk 3: S3::putObject(): AWS-HTTP-Fehler: cURL-error 6: Couldn ' T resolve host 's3.Ireland.amazonaws.com'
Ich versuche, ein Bild hochzuladen auf einem S3-bucket, die mit version 3 von der SDK, aber ich erhalte die folgende Fehlermeldung:
Fehler beim ausführen von "PutObject" auf
"https://s3.Ireland.amazonaws.com/my-bucket-name/testFile.jpg"; AWS HTTP
Fehler: cURL-error 6: Couldn ' T resolve host 's3.Ireland.amazonaws.com'
(siehe http://curl.haxx.se/libcurl/c/libcurl-errors.html)
Dies ist das erste mal, dass ich versuchen dies zu tun, also ich bin nicht sehr zuversichtlich.
Hochladen einer Datei über die AWS-Schnittstelle, die URL ist so etwas wie https://s3-eu-west-1.amazonaws.com/my-bucket-name/testFileThroughWeb.jpg
.
So, es scheint anders zu sein als bei den AWS-SDK, um die Datei (das ist https://s3.Ireland.amazonaws.com/my-bucket-name/testFile.jpg
)
Eine andere Sache, ich möchte darauf hinweisen, ist die version, die ich übergeben dem Konstruktor von S3Client.
Its-Instanz erstellt wird, übergeben Sie den Wert stable
für den Schlüssel version
während in den Eimer Politik, die ich verwenden version: "2012-10-17"
.
Dies ist die Konfiguration der Eimer Politik:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}
Speichern das Bild in den Eimer, ich benutze diesen code:
public function testS3Action()
{
$fileToUpload = 'http://example.com/an/image.jpg';
//Get the remote file extension
$remoteImageExtension = explode('.', $fileToUpload);
$remoteImageExtension = array_pop($remoteImageExtension);
$fs = new Symfony\Component\Filesystem\Filesystem();
$tempImage = tempnam(sys_get_temp_dir(), 'image.') . '.' . $remoteImageExtension;
/**
* From the Symfony container
* @var GuzzleHttp\Client $client
*/
$client = $this->get('guzzle.client');
//Get and save file
$client->get($fileToUpload, ['save_to' => $tempImage]);
$tempImage = new Symfony\Component\HttpFoundation\File\File($tempImage);
/**
* From the Symfony container
* @var Aws\S3\S3Client $s3
*/
$s3 = $this->get('shq.amazon.s3');
$params = [
'Bucket' => $this->getParameter('amazon.s3.bucket'),
'Key' => 'testFile.jpg',
'Body' => $tempImage
];
$result = $s3->putObject($params);
return $result;
}
Was könnte die Ursache für die Fehler ich bin immer auf??? Warum der host https://s3.Ireland.amazonaws.com
erraten der S3Client nicht korrekt?
- Die SDK sollte nicht "raten", dass Wert, denn es ist definitiv ungültig. Es gibt keinen Endpunkt als
s3.Ireland...
. Sie nicht haben, etwas, irgendwo, in Ihrer Konfiguration oder den code wo "Irland" erscheint? - Ich habe es für die parameter "region". Wenn ich instanziieren der S3-client, den ich übergeben Sie den Wert "Irland" als region param.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine solche AWS-region "Irland". Die gültigen Regionen für den S3 aufgeführt sind auf Amazon ' s Website; die einen sind Sie wahrscheinlich versuchen zu verwenden, hier ist die EU (Irland), die vertreten sein werden, in einem parameter "region" als
eu-west-1
.s3-
arbeiten, wenn die docs es definieren