我正在为一些共同工作创建一个网络应用程序。我有带有资产的文本(其中大多数是打印质量的图片,比如 5MB,总共大约每月 5GB)。
我将使用 EC2 实例作为 node.js 服务器和带有附加块存储的 mongodb 在亚马逊的云上托管它。
资产是对象私有的,因此不是每个人都可以访问它。
我应该如何处理资产?将它们保存为数据库中的二进制文件或将它们加载到 S3?(或任何其他亚马逊服务)
有人有这方面的经验吗?或者也许一些有用的链接。提前致谢
我正在为一些共同工作创建一个网络应用程序。我有带有资产的文本(其中大多数是打印质量的图片,比如 5MB,总共大约每月 5GB)。
我将使用 EC2 实例作为 node.js 服务器和带有附加块存储的 mongodb 在亚马逊的云上托管它。
资产是对象私有的,因此不是每个人都可以访问它。
我应该如何处理资产?将它们保存为数据库中的二进制文件或将它们加载到 S3?(或任何其他亚马逊服务)
有人有这方面的经验吗?或者也许一些有用的链接。提前致谢
如果您需要进行访问控制,您可以做很多事情,但最明显的是通过您的 Web 服务器提供断言并让它实现所需的访问控制逻辑。您的应用程序可以通过来自 S3 或 MongoDB GridFS 的源对象进行代理。如果您已经在使用 MongoDB,在这种特殊情况下,我会使用 GridFS,除非您想要 S3 的一些成本节约功能,例如减少冗余存储。
我可能会在没有公共访问权限的情况下将资产存储在 S3 上,然后您可以在需要时通过从您的网络服务器生成临时签名的 url 来授予授权用户访问权限。通过这种方式,您可以通过将存储脏工作移交给 S3 来利用服务器的复杂性,并且您仍然可以让您的文件仅由有权访问它们的人访问。