2013-10-09 49 views
0

我有一个应用程序需要使用Amazon S3来托管图像及其不同大小。我期待了解哪种方法是最好的方法。在Amazon S3和MongoDB上管理图像版本

当用户上传图片时,我创建了3种不同的尺寸,这些尺寸在网站或移动应用的不同部分都需要。总共我有4个相同图像的文件。

问题:

  1. 如何将它们存储在亚马逊S3。有关如何重新命名这些文件以使其更容易的任何想法。
  2. 我是否需要在MongoDB中存储所有4个文件名的文件名?

回答

1

您不需要在db中保留所有文件名。只保留一个父文件夹名称。

比方说,用户上传的图片ID为1234567(为了唯一性,您也可以使用时间戳)。然后创建一个名为1234567的文件夹,并放置所有具有特定名称的图像,如原始,缩略图,中等,大。只要你需要一个特定的流就可以了。

1

您可以简单地附加一个简短的字符串,分辨率或使用标识符,如“thumbnail”,例如

foobar.jpg -> 2342342_thumb.jpg 
      -> 2342342_gallery.jpg 
      -> 2342342_full.jpg 

这样,您不需要存储四个文件的名称,只需遵循约定。