【问题标题】:MEAN Stack- Where should I store images meant for particular users?MEAN Stack - 我应该在哪里存储针对特定用户的图像?
【发布时间】:2018-06-05 20:20:07
【问题描述】:

我正在为我的项目使用 MEAN 堆栈。我在网上读到不建议将图像存储在数据库本身中,因此我不这样做。

为了解决这个问题,现在我设置了一个本地服务器(使用 express),并从那里提供我的静态图像文件。 现在我可以通过使用 URL 来使用该图像,例如:

http://localhost:4200/images/a.jpg

我计划最终通过使用像 heroku 这样的服务来托管这个快速应用程序。

在我的主网站中,我正在使用 MongoDb 和 NodeJs 实现身份验证(登录和注册)。 我希望根据特定的登录用户显示图像。

我是否应该将我的图像存储在以该用户的用户名命名的文件夹中,以便我可以相应地生成 URL 字符串并通过以下方式访问图像:

 http://localhost:4200/user1/a.jpg

我的申请流程是否正确?这是我应该为特定用户访问图像的方式吗?

我在某处读到会存在安全问题,因为任何拥有图像 url 的人都可以访问它。我现在不太关心安全性,因为这是一个不适合许多用户的小项目。但任何关于不会出现此类安全问题的方法的建议都会有所帮助。

我是新手,任何建议都会有所帮助。 提前致谢。

【问题讨论】:

  • 您可以将亚马逊 S3 添加到您的堆栈中。 S3 的 API 为照片上的每个 POST 操作返回一个 UUID 类型的 URL。然后,您的应用程序向 MONGO 插入一个元组,将 photo.URL 链接到 User.ID。要为用户获取照片集合,您可以在 mongo 查询上使用过滤器表达式,该表达式返回一组 S3 url,用作 img.src 标签的 UI 中的值。

标签: node.js mongodb angular express heroku


【解决方案1】:

您可以为此使用 firebase。 超级简单

在那里,您可以创建一个任意名称的文件夹并保存所有图像。

在数据库中,您可以只保存他们的 firebase 生成的链接,该链接可以使用 user_id 或类似的东西轻松映射。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-15
    • 1970-01-01
    • 2018-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多