Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services S3 putObject不工作访问被拒绝_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services S3 putObject不工作访问被拒绝

Amazon web services S3 putObject不工作访问被拒绝,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,AWS S3正在我的本地主机和我的live网站上工作,但我的开发服务器(配置完全相同)抛出以下错误:导致了一个404未找到`响应:从实例配置文件元数据服务器检索凭据时出错 Localhost URL is http://localhost/example Live URL is http://www.example.com Development URL is http://dev.example.com 为什么这可以在本地主机和live上工作,而不能在我的开发服务器上工作 以下是我的示例代码

AWS S3正在我的本地主机和我的live网站上工作,但我的开发服务器(配置完全相同)抛出以下错误:
导致了一个
404未找到`响应:从实例配置文件元数据服务器检索凭据时出错

Localhost URL is http://localhost/example
Live URL is http://www.example.com
Development URL is http://dev.example.com
为什么这可以在本地主机和live上工作,而不能在我的开发服务器上工作

以下是我的示例代码:

$bucket = 'example'
$s3Client = new S3Client([
                'region'=>'us-west-2',
                'version'=>'2006-03-01',
                'key'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
                'secret'=>'xxxxxxxxxxxxxxxxxxxxxxxx',
            ]);
            $uniqueFileName = uniqid().'.txt';
            $s3Client->putObject([
                'Bucket' => $bucket,
                'Key'    => 'dev/'.$uniqueFileName,
                'Body'   => 'this is the body!'
            ]);
政策如下:

{
"Version": "2012-10-17",
"Id": "Policyxxxxxxxxx",
"Statement": [
    {
        "Sid": "Stmtxxxxxxxxx",
        "Effect": "Allow",
        "Principal": "*",
        "Action": "s3:GetObject",
        "Resource": "arn:aws:s3:::example/*"
    }
]
}

http://169.254.169.254/latest/meta-data/iam/security-credentials/
与首次启动EC2实例时分配给该实例的角色关联

由于您收到的是
404notfound
响应,因此您的开发服务器可能没有分配角色。您可以在EC2管理控制台中进行检查——只需单击实例,然后查看详细信息窗格并找到角色值


如果希望启动“完全”相同的新服务器,请使用“操作”菜单中的类似于此的启动命令。它还将复制角色设置。

我认为您已编辑的xxx.xx.xxx.xx是169.254.169.254?这是EC2元数据虚拟服务器的标准IP地址,您的应用程序或AWS库将从中获取基于实例角色的临时凭据。如果一切都一样的话,为什么它能在localhost上工作似乎是一个很大的谜。您正在使用实例角色吗?两台EC2机器是否配置了相同的角色?
ec2metadata
命令行实用程序访问相同的端点。