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.
InformationsquelleAutor Aerendir | 2015-08-02
Schreibe einen Kommentar