问题描述
我正在开发一个 Angular-Laravel 应用程序(Laravel 用作我的 Angular 应用程序的 REST API),我正在使用 Amazon S3 文件存储系统上传照片。
现在我正在从我的 Laravel 服务器下载 Amazon S3 文件,然后它被 Angular 应用程序使用,但速度太慢了。
出于安全原因,我没有尝试直接从 Angular 加载 Amazon S3 图像:我担心它可能会被劫持和爆炸。
我的问题是,我是否使用了使用 S3 服务器的最佳方式?我应该直接从我的 Angular 应用程序加载它们吗?否则,有没有办法从我的 Laravel API 更快地加载它们?
非常感谢。
解决方法
Amazon S3 公开了一个 JavaScript SDK,可用于从 JS 应用程序调用 Amazon S3 操作。您可以使用此 API 从您的 Angular 应用程序执行 Amazon S3 操作。只要您保证自己的信用安全,就无需担心有人入侵您的帐户。
如果您不熟悉使用适用于 JavaScript 的 AWS 开发工具包来执行 Amazon S3 操作,请参阅开发人员指南。
What's the AWS SDK for JavaScript?
,您应该让您的后端(在本例中为 Laravel 应用程序)生成一个预签名的 URL 并将其返回给前端。然后,您可以在前端使用该 URL 并直接向 S3 发出请求。