如何在Django+;角度解耦应用到S3?

如何在Django+;角度解耦应用到S3?,django,amazon-s3,django-rest-framework,angular5,angular6,Django,Amazon S3,Django Rest Framework,Angular5,Angular6,我有一个使用Django 2构建的解耦应用程序、一个使用DRF的API和一个Angular 6前端应用程序。我想让用户能够上传他们个人资料的照片,将来可能还会上传一些PDF。经过一些研究,我发现最方便的方法是将这些文件存储在Amazon S3存储桶中 我已经找到了很多关于如何在Angular和Django上将文件上传到S3存储桶的资源,现在我想知道在我的解耦应用程序中实现这一点的最佳方法是什么:我应该在前端管理它,而不使用后端吗?或者我应该将文件从angular传递到Django应用程序,然后从

我有一个使用Django 2构建的解耦应用程序、一个使用DRF的API和一个Angular 6前端应用程序。我想让用户能够上传他们个人资料的照片,将来可能还会上传一些PDF。经过一些研究,我发现最方便的方法是将这些文件存储在Amazon S3存储桶中

我已经找到了很多关于如何在Angular和Django上将文件上传到S3存储桶的资源,现在我想知道在我的解耦应用程序中实现这一点的最佳方法是什么:我应该在前端管理它,而不使用后端吗?或者我应该将文件从angular传递到Django应用程序,然后从那里上传到bucket

两种方法的优缺点是什么?这是我第一次这样做,我还没有找到很多用于解耦应用程序的资源

欢迎任何帮助!谢谢

最佳实践 任何与数据相关的东西都必须由后端管理,例如Django,Angular只是一个客户端

您应该将文件从angular传递到Django应用程序,然后将其上载 从那里到s3桶

Cons使用客户端 假设将来,如果您要开发移动应用程序来使用RESTAPI,那么您也需要重写整个管理

您必须将s3 bucket API密钥保存在客户端上,黑客很容易访问它

dist
文件夹大小将增加,这将影响站点的加载时间

如果您将文件从客户端上传到S3存储桶,它将使用用户的互联网,在大多数情况下,它比服务器的互联网慢