AWS S3 适用于本地项目,但在 AWS EC2 上不与同一项目 (Codeigniter PHP) 配合使用


AWS S3 work with a local project but on AWS EC2 doesn't with the same project (Codeigniter PHP)

这个问题让我发疯,当我在本地服务器中测试我的代码点火器应用程序时,一切正常,然后我将其上传到 AWS EC2(Ubuntu 服务器)中,但是当我尝试将图像从 AWS EC3 上传到 AWS S2 时,我收到错误 500。我使用库 https://github.com/psugand/CodeIgniter-S3,有人将 aws s3 和 aws ec2 与代码点火器应用程序一起使用,我需要它的建议。

运行此代码时会出现错误:

    $this->load->library('s3');
    $this->s3->putObject($this->s3->inputFile($file,false),
                         $Bucket,
                         $name,
                         self::ACL_PUBLIC_READ);

我认为编码点火器未与 AWS S3 连接。

谢谢

所有这些都是由于权限问题而发生的,请确保服务器中文件的所有权限都必须为 755,以便更改您必须使用的权限

这是针对单个文件的

chmod 755 ./name/of/file

这是更改文件夹中的多个文件或所有文件

chmod 755 -R /folderlocation/andname

如果权限被拒绝,请使用 sudo

您当前使用 S3 设置的存储桶策略是什么?您是否使用单独的 IAM 账户,这些账户可能从本地环境与云环境冲突(访问密钥、权限等)

如果您能够(非常)暂时删除安全限制,直到您能够成功连接,您将能够准确确定导致错误的原因。然后,您可以投入您个人定义的安全级别并找到问题(我会押注存储桶策略)

如果您已启动到 VPC,则您的实例是否可路由互联网也可能遇到问题,这是 AWS 中的新环境吗?