【问题标题】:Error executing "PutObject" on "https://s3.ap-south-1.amazonaws.com/buckn/uploads/5th.jpg"; AWS HTTP error: Client error: `PUT在“https://s3.ap-south-1.amazonaws.com/buckn/uploads/5th.jpg”上执行“PutObject”时出错; AWS HTTP 错误:客户端错误:`PUT
【发布时间】:2017-10-16 07:38:46
【问题描述】:

这是我得到的错误 在“https://s3.ap-south-1.amazonaws.com/infosecure.buck/uploads/5th.jpg”上执行“PutObject”时出错; aws http错误:客户端错误:PUT https://s3.ap-south-1.amazonaws.com/infosecure.buck/uploads/5th.jpg resignededdenedac​​cess denied69dc61(截断......)附加(客户端)

<?php
use Aws\S3\Exception\S3Exception;

require 'app/start.php';

if(isset($_FILES['file']))
{
   $file=$_FILES['file'];

  $name= $file['name'];

  $tmp_name = $file['tmp_name'];

  $extension = explode('.',$name);

  $extension=strtolower(end($extension));

  $key = md5(uniqid());

  $tmp_file_name= "{$key}.{$extension}";
  $tmp_file_path = "files/{$tmp_file_name}";
  move_uploaded_file($tmp_name,$tmp_file_path);
  try{

     $s3->putObject([
     'Bucket' => $config['s3']['bucket'],
     'Key' => "uploads/{$name}",
     'Body' => fopen($tmp_file_path,'rb'),
     'ACL' => 'public-read'

     ]); 

  unlink($tmp_file_path);}
  catch(S3Exception $e)
  {
      echo $e->getmessage();
  }




}
?>

这是我的存储桶策略

{ “版本”:“2012-10-17”, “陈述”: [ { “效果”:“允许”, “主要的”: { “AWS”:“arn:aws:iam::601825519382:user/admin-infosecure” }, “行动”:“s3:*”, “资源”:“arn:aws:s3:::infosecure.buck” } ] }

【问题讨论】:

  • 错误是什么?你想做什么?
  • 我正在尝试使用 php 将文件上传到 s3。很抱歉添加代码我无法添加任何代码,它说您的帖子主要包含代码
  • 在 'PUT ..... 之后会有更多内容。您介意将其添加到问题中吗?为问题添加更多上下文,如代码 sn-p 也会有很长的路要走。
  • 是的,但标题将我限制为 150 个字符
  • 现在我已经添加了

标签: php amazon-s3


【解决方案1】:

似乎是权限问题。

如果您通过本地计算机访问,请确保您的 IAM 用户对存储桶具有写入权限。

如果您在 EC2 实例上运行此代码,请确保实例角色对此存储桶具有写入权限。

【讨论】:

  • 看看我的存储桶政策
  • 您是从本地还是从 ec2 运行此代码?如果是 ec2,您是否使用同一用户访问:admin-infosecure?还是使用实例配置文件?
  • admin-infosecure 是我的 iam 用户
  • 需要添加角色才能访问存储桶
【解决方案2】:

对于 PutObject / GetObject,ARN 需要引用存储桶中的对象,因此不要:

{
  "Version": "2012-10-17"
, "Statement": [ {
    "Effect": "Allow"
  , "Principal": { "AWS": "arn:aws:iam::601825519382:user/admin-infosecure" }
  , "Action": "s3:*"
  , "Resource": "arn:aws:s3:::infosecure.buck" 
  } ] 
}

你想要

{
  "Version": "2012-10-17"
, "Statement": [ {
    "Effect": "Allow"
  , "Principal": { "AWS": "arn:aws:iam::601825519382:user/admin-infosecure" }
  , "Action": "s3:*"
  , "Resource": [
      "arn:aws:s3:::infosecure.buck"
    , "arn:aws:s3:::infosecure.buck/*" 
    ]
  } ] 
}

【讨论】:

    猜你喜欢
    • 2020-07-05
    • 2021-10-02
    • 2018-12-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-31
    • 2012-11-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多