gpt4 book ai didi

php - Aws PHP Sdk 3:S3::putObject():AWS HTTP 错误:cURL 错误 6:无法解析主机 's3.Ireland.amazonaws.com'

转载 作者:可可西里 更新时间:2023-11-01 00:42:20 33 4
gpt4 key购买 nike

我尝试使用 SDK 版本 3 将图像上传到 S3 存储桶,但我收到以下错误:

Error executing "PutObject" on "https://s3.Ireland.amazonaws.com/my-bucket-name/testFile.jpg"; AWS HTTP error: cURL error 6: Couldn't resolve host 's3.Ireland.amazonaws.com' (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

这是我第一次尝试这样做,所以我没有太大的信心。

通过AWS接口(interface)上传文件,其URL类似于https://s3-eu-west-1.amazonaws.com/my-bucket-name/testFileThroughWeb.jpg。因此,它似乎不同于 AWS SDK 创建的 PUT 文件(即 https://s3.Ireland.amazonaws.com/my-bucket-name/testFile.jpg )

我想指出的另一件事是我传递给 S3Client 的构造函数的版本。它的实例是通过传递给键 version 的值 stable 而在存储桶策略中我使用 version: "2012-10-17".

这是桶策略的配置:

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AddPerm",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": "arn:aws:s3:::my-bucket-name/*"
}
]
}

要将图像保存在存储桶中,我使用以下代码:

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;
}

这可能是我收到错误的原因?为什么 S3Client 猜测的主机 https://s3.Ireland.amazonaws.com 不正确?

最佳答案

不存在“爱尔兰”这样的 AWS 区域。列出了 S3 的有效区域 on Amazon's web site ;您可能在此处尝试使用的是 EU(爱尔兰),它在区域参数中表示为 eu-west-1

关于php - Aws PHP Sdk 3:S3::putObject():AWS HTTP 错误:cURL 错误 6:无法解析主机 's3.Ireland.amazonaws.com',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31777475/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com