我有一个简单的Node.js应用程序。我将拥有用户配置文件,每个用户都可以上传多个图像。图像将上传到Rackspace Cloudfiles。
我目前正在使用Rackit模块。
目前的工作方式:
我将一个文件传递给Rackit,然后将其上传到Rackspace Cloudfiles,并将CDN网址返回到该图像(图像名称已经被rackit哈希)(网址看起来像这样):
http://c15142174.r14.ca2.rackcdn.com/Y20h30Jd918aHV3pKROzejdq
Rackit目前将所有图像保存到一个容器中。
以下是我的问题:
1)我应该将每个用户的图像保存到一个单独的容器中(为了隐私,安全,并确保一个用户无法删除其他用户)?
2)将上面的url ref存储在数据库中并在将来以这种方式引用它是否足够?我可以指望这个网址没有改变吗?
3)为用户的图像添加用户名或哈希,将图像与给定用户联系起来会更有意义吗?
什么是最佳做法?
谢谢
答案 0 :(得分:3)
我被提到这篇很棒的文章,它真的很好地回答了我的问题: http://www.rackspace.com/knowledge_center/content/best-practices-using-cloud-files
总结一下我的用例文章:
1)使用多个容器。在一个容器中放置大量图像会降低您的速度,尤其是因为您可以在多长时间内写入同一个容器。如果2个用户同时尝试将图像上载到同一容器,则这可能尤其成问题。因此,每个用户的不同容器在这里都有意义。
2)如果需要,您可以使用伪文件夹进行组织。您可以为图像命名(它是机架空间云中的对象)“/ user123/ducks/duck_small.jpg”。在这种情况下,图像的名称是整个字符串(包括斜杠)。
3)存储对数据库中图像的引用。访问cloudfiles以列出容器的内容将比从数据库中获取图像的cdn url慢得多。