过去几天,我一直在尝试将Amazon S3和Amazon Cloudfront与使用Amazon EC2开发的网站(托管在opencart上)进行集成。在搜索时,我发现很多extensions,其中没有一个符合要求。 根据{{3}},所有数据都存储在本地卷存储上,您可以创建一个目录为/ image /目录的子域,并从该子域访问图像。但是在这里我看不到图像和所有图像如何到达Amazon S3。我可能在这里错过了一些东西。但是下面是我要实现的。
我想要的是存储所有图像并下载到extensions,并使用Amazon S3从Amazon S3检索图像。管理员上传图像时,该图像将存储在Amazon Cloudfront中,而不是本地卷存储中。
我已经浏览了/ image /模型,这些文件是Amazon S3默认安装随附的库文件。看完文件后,似乎无法在当前结构中实现我想要的功能。我看到的解决方案是我为此创建我自己的库并更新正在使用图像的opencart的每个文件或使用存在的任何扩展名(使用此扩展名会导致在使用opencart时出现问题或Amazon Elastic load balancing)。
任何建议!!!
答案 0 :(得分:0)
在市场上搜索,我找到了此解决方案Amazon CloudFront / S3 Integration
扩展名说:
使用Amazon CloudFront加快网站上图像的加载速度。通过此集成,您可以轻松地将OpenCart图像缓存上传到S3并通过CloudFront进行服务。
答案 1 :(得分:0)
最后,我找到了解决方法。在上述问题中,基本上我们有两个问题: 1.集成Amazon S3 2.集成Amazon CloudFront
集成Amazon S3 最佳做法是使用S3完全精简'{$ ROOT} / image'中的所有目录和文件。最终目标是使应用程序尽可能地可扩展。这样,当我们将负载均衡器放在应用程序的前面时,它将不会产生任何问题,因为文件不再保存在本地存储中。 为此,必须自定义应用程序,以便管理员添加/更新任何映像时,它们都将添加/更新到S3,而不是本地存储。同样,当图像在网站前端被拉出时,它们都会从S3而不是本地存储中拉出。
集成Amazon CloudFront 这有两个选择: 2a。实施S3后-只需在亚马逊Cloudfront中提供S3:Bucket:ARN并在整个Web应用程序中更改图像url。 2b。不使用S3(使用本地存储)-而不是S3:Bucket:ARN,我们需要将应用程序的图像目录网址提供给Amazon Cloudfront,例如:www.example.com/image/就是这样。现在,在整个Web应用程序中更改图像的URL,然后图像将从Amazon Cloudfront URL中拉出。
答案 2 :(得分:0)
我找到的最简单的方法是在AWS Lightsail计划中托管。尽管默认情况下,AWS Lightsail计划不支持Opencart,但我们可以使用LAMP堆栈并在其中添加opencart代码。
Host LAMP stack in AWS Lightsail, Opencart hosting in AWS
在这篇文章中,我们描述
让我们知道是否有任何疑问或疑虑。