我有一个项目托管在 Amazon EC2 Ireland (Ubuntu)。
我用 CodeIgniter 开发,我想用 S3 来存储文件。
我已经使用了三个或四个特定的库来将 S3 与 CodeIgniter 一起使用,但没有一个有效。我尝试了官方的AWS SDK for PHP,兼容性测试还可以,但是示例不起作用。我认为问题在于访问 S3。
我在 S3 Management 中创建了三个存储桶,两个在爱尔兰,一个在美国标准,我可以通过浏览器、S3 Organizer (S3Fox) 和 Cyberduck 访问文件。但我无法访问我的项目。
任何人都可以帮助我吗?
对不起,我的英语不好...
控制器amazona.php:
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Amazona extends CI_Controller {
var $bucket = 'cubito';
function __construct()
{
parent::__construct();
$this->load->library('S3');
}
function index()
{
/* $data['files'] = $this->s3->getBucket('cubito'); */
$data['texto'] = "prueba";
$this->load->view('amazona', $data);
}
}
?>
查看amazona.php:
<html>
<head>
<title>prueba</title>
</head>
<body>
<a href="http://cubito.s3.amazonaws.com/imagen.jpg">imagen</a>
<img src="http://cubito.s3.amazonaws.com/imagen.jpg" />
<p><?php echo($texto); ?></p>
<p><?php echo($this->s3->listBuckets()); ?></p>
</body>
</html>
我添加了一个存储桶策略,但仍然不起作用:
{
"Version": "2008-10-17",
"Id": "Policy1351373775750",
"Statement": [
{
"Sid": "Stmt1351373767997",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::cubito",
"arn:aws:s3:::cubito/*"
]
}
]
}