1

我有一个简单的 Node.js 应用程序。我将拥有用户个人资料,每个用户都可以上传几张图片。图像将上传到 Rackspace Cloudfiles。

我目前正在使用Rakit模块。

它目前的工作方式:

我向 Rackit 传递了一个文件,该文件将其上传到 Rackspace Cloudfiles,并将 CDN url 返回到该图像(图像名称已由 rackit 散列)(url 看起来像这样):
http://c15142174.r14.ca2.rackcdn。 com/Y20h30Jd918aHV3pKROzejdq

Rackit 当前将所有图像保存到一个容器中。

以下是我的问题:
1) 我是否应该将每个用户的图像保存到一个单独的容器中(为了隐私、安全以及确保一个用户不能删除另一个用户)?

2) 只需将上面的 url ref 存储在数据库中并在将来以这种方式引用它就足够了吗?我可以指望这个网址不会改变吗?

3) 在用户图像前加上用户名或哈希值将图像与给定用户联系起来是否更有意义?

最佳实践方法是什么?

谢谢

4

1 回答 1

3

我被提到了这篇很棒的文章,它很好地回答了我的问题: http ://www.rackspace.com/knowledge_center/content/best-practices-using-cloud-files

总结一下我的用例的文章:

1)使用多个容器。在一个容器中拥有大量图像会减慢您的速度,尤其是因为您可以对同一容器进行写入的频率受到限制。如果 2 个用户同时尝试将图像上传到同一个容器,这可能会特别成问题。因此,在这里为每个用户使用不同的容器是有意义的。

2)如果需要,您可以使用伪文件夹进行组织。您可以将您的图像(它是 rackspace 云中的一个对象)命名为“/user123/ducks/duck_small.jpg”。在这种情况下,图像的名称是整个字符串(包括斜杠)。

3)在您的数据库中存储对图像的引用。访问 cloudfiles 以列出容器的内容比简单地从数据库中获取图像的 cdn url 慢得多。

于 2012-07-10T21:39:13.407 回答