Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在mongodb中存储文件/图像的URL?_Mongodb_Mongoose - Fatal编程技术网

如何在mongodb中存储文件/图像的URL?

如何在mongodb中存储文件/图像的URL?,mongodb,mongoose,Mongodb,Mongoose,我使用aws s3存储文件。在mongodb中存储这些文件的URL有两个选项 存储图像的完整url,例如:“ 在mongodb中只存储密钥,并在每次获取文档时计算(使用聚合投影或mongoose virtuals)完整路径 我只想知道哪一个更好,为什么 我建议只在数据库中存储密钥。这是因为,随着时间的推移,您的应用程序将不断发展,并且将需要这样的操作 将bucket映射到域名 复制到不同的存储桶 修改bucket名称 通过AWS CloudFront等代理和缓存存储桶内容 如果存储完整的ht

我使用aws s3存储文件。在mongodb中存储这些文件的URL有两个选项

  • 存储图像的完整url,例如:“
  • 在mongodb中只存储密钥,并在每次获取文档时计算(使用聚合投影或mongoose virtuals)完整路径

  • 我只想知道哪一个更好,为什么

    我建议只在数据库中存储密钥。这是因为,随着时间的推移,您的应用程序将不断发展,并且将需要这样的操作

    • 将bucket映射到域名
    • 复制到不同的存储桶
    • 修改bucket名称
    • 通过AWS CloudFront等代理和缓存存储桶内容

    如果存储完整的http url,则需要在mongodb中更改文件数据记录。

    我建议只在数据库中存储密钥。这是因为,随着时间的推移,您的应用程序将不断发展,并且将需要这样的操作

    • 将bucket映射到域名
    • 复制到不同的存储桶
    • 修改bucket名称
    • 通过AWS CloudFront等代理和缓存存储桶内容

    如果存储完整的http url,则需要在mongodb中更改文件数据记录。

    没有“更好”,只有“不同”。记下每种方法的优缺点,然后决定你更关心的方面。是否要存储更少的字节,但使用更多的CPU周期?你想让所有的查询都变得笨拙吗?我们无法为您回答这个问题。将来我可以将文件从aws移动到谷歌云?没有“更好”,只有“不同”。记下每种方法的优缺点,然后决定你更关心的方面。是否要存储更少的字节,但使用更多的CPU周期?你想让所有的查询都变得笨拙吗?我们无法为您回答这个问题。将来我可以将文件从aws移动到谷歌云吗?