丹妮
在我的新事业规划阶段,我几乎没有疑问:
我正在尝试在AWS上部署一个应用程序,该应用程序是一个Instagram副本,人们将在其中在线发布图片。
哪种AWS服务将执行以下操作:
- 建议存储图像?S3?
- 最终客户用来下载这些图像?
- 用于检索评论和标签之类的图像数据?
- 用于将图像转换为小尺寸?CloudFront?
- 用于搜索所有图像和标签?
- 用于前端所有API请求?
我还想将视频存储在S3中以便在重负载下快速检索,因此组织像文件夹这样的视频以方便访问key=folder1/folder2/folder3/video.mp4
是很好的选择,还是为键名创建10个随机散列是个好主意,或者可能是一个散列20后跟一个逻辑名称?
约翰·罗滕斯坦
尽管您的问题过于笼统,无法在StackOverflow上给出答案,但是这里有尝试做出回应的尝试...
尽管可以使用某些AWS服务来构建类似Instagram的应用程序,但您仍然必须进行大量编码。AWS使存储数据,管理和提供数据变得容易,仍然需要您编写应用程序。
要回答您的问题:
- 存储图像:绝对是Amazon S3。它可以存储任意数量的文件。
- 下载图像:只需将URL嵌入网页中,S3便会将图像提供给您的用户。您甚至可以使用预签名的URL向授权用户提供私人内容。
- 注释和标签:虽然可以将有限的元数据与Amazon S3中存储的对象相关联,但对于您的应用程序而言,将这种类型的数据存储在数据库中会更好。该数据库可以在Amazon RDS(关系数据库服务)下启动。
- 转换图像大小:您的应用程序将负责执行此操作。但是,您可以使用3rd-party服务自动转换图像,例如Cloudinary,lib-pixel和imgix。
- 搜索图像和标签:这是您的应用程序的责任,但可以通过使用数据库来提供帮助,您可以考虑使用Amazon Cloudsearch,SmugMug为此目的实际使用了Amazon Cloudsearch。
- API前端:使用Amazon API Gateway充当API请求的前端,但是您的应用程序将负责满足这些请求。
- 在高负载下检索视频:将视频存储在Amazon S3中,但使用Amazon CloudFront来提供视频。它可以将内容缓存到更接近您的用户的位置,并且知道如何将视频内容提供给Web浏览器。文件名策略不会影响提供内容的速度,因此可以根据需要命名文件。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
编辑于
我来说两句