上传到 S3 存储桶时出错,与 EndPoint 相关
Posted
技术标签:
【中文标题】上传到 S3 存储桶时出错,与 EndPoint 相关【英文标题】:Error upload to S3 bucket, something with EndPoint 【发布时间】:2013-09-12 07:10:43 【问题描述】:我尝试使用以下代码 Uploading an Image using AWS SDK for php 2,它适用于美国默认区域 (us-east-1),但是当我使用新加坡区域创建另一个存储桶时(我将 ap-souteast-2 放入代码中)它返回错误:
您尝试访问的存储桶必须使用 指定的端点。请将所有未来的请求发送到此端点: “mytestbucket.local.s3-ap-southeast-1.amazonaws.com”。
如何解决这个问题?
这是我的代码
$awsConfig = array(
'key' => $this->container->getParameter('aws_key'),
'secret' => $this->container->getParameter('aws_secret_key'),
'region' => $this->container->getParameter('s3_region'),
);
$s3 = S3Client::factory($awsConfig);
$bucketLists = array();
try
$bucketname = $this->container->getParameter('aws_bucket_name');
$bucketFolder = $this->container->getParameter('upload_folder');
$filename = $user->getProfilePic();
$fullfilename = $user->getAbsolutePath();
$s3->putObject(array(
'Bucket' => $bucketname,
'Key' => $bucketFolder.'/'.$filename,
'Body' => EntityBody::factory(fopen($fullfilename, 'r')),
'ACL' => CannedAcl::PUBLIC_READ,
'ContentType' => mime_content_type($fullfilename)
));
if (file_exists($fullfilename))
unlink($fullfilename);
catch (S3Exception $e)
return $this->handleView( $this->view(array(
'StatusCode' => 400,
'ErrorDesc' => $e->getMessage()), 400));
【问题讨论】:
【参考方案1】:您需要在$awsConfig
设置中使用ap-southeast-1
区域而不是ap-souteast-2
。
【讨论】:
我没有意识到这一点。感谢您的帮助。以上是关于上传到 S3 存储桶时出错,与 EndPoint 相关的主要内容,如果未能解决你的问题,请参考以下文章
将对象上传到 S3 存储桶时如何触发 AWS Cloudformation 堆栈的更新?
尝试上传到 aws s3 存储桶时收到 400 Bad Request
尝试使用 PUT 将 PDF 作为 blob 上传到 S3 存储桶时被禁止 403
Terraform:尝试销毁 EKS 集群时出现“错误:删除 S3 存储桶时出错”
AWS ios sdk:将数据上传到 s3 时出错(nw_endpoint_flow_prepare_output_frames 无法使用 1 帧,标记为失败)