第一次搞乱AWS,我已经设置了我的EC2服务器和RDS。我想使用S3存储从我的EC2服务器上的页面上传的图像,将图像路径保存在数据库中,然后在稍后的时间显示图像。
我可以使用常规VPS轻松完成此操作但不确定如何从我的EC2服务器中的PHP代码访问S3存储。
有什么建议吗?
答案 0 :(得分:2)
使用AWS开发工具包创建新的S3对象时,应返回完整的URL以访问此图像。
将成功创建新S3object时返回的URL保存到数据库中,然后使用现有的PHP代码将该URL从数据库中拉出来,将其显示在HTML页面中,我认为这是目前已经以某种形式做过......
上传文件,设置权限为public并返回新上传文件的URL的示例PHP代码:
use Aws\S3\S3Client;
$bucket = '*** Your Bucket Name ***';
$keyname = '*** Your Object Key ***';
// $filepath should be absolute path to a file on disk
$filepath = '*** Your File Path ***';
// Instantiate the client.
$s3 = S3Client::factory();
// Upload a file.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'SourceFile' => $filepath,
'ContentType' => 'text/plain',
'ACL' => 'public-read',
'StorageClass' => 'REDUCED_REDUNDANCY',
'Metadata' => array(
'param1' => 'value 1',
'param2' => 'value 2'
)
));
echo $result['ObjectURL'];