使用MVC-3,Razor,C#开发
一直在四处寻找却找不到我想要的建议。我的网站将包含用户上传的图片(可能是一个很高的数字)。管理这些图片的最佳实践是什么(放置,分解到子文件夹,等等)?如果我定期重新发布我的网站,我应该把它们放在哪里,以防止它们意外地被吹走?
如果有任何好的文章或博客文章,那将是有帮助的。另外,任何人想要添加的任何建议都是很棒的。
耽误您时间,实在对不起!
抢夺
编辑
还想知道人们做了什么来防止热连接。
发布于 2011-01-03 00:40:08
我运行的站点具有大量的图像,所有图像都存储在日期文件夹结构中。即2010/Dec/31/image.jpg
这有两个原因。
第一个是我的托管计划附带的有限的DB空间(200 MB)。显然,如果我有千兆字节的空间,我就会将它们存储在DB中。
第二个原因是尽量减少文件夹中的图像数量。目录列表中包含更多文件的时间更长,所以每24小时创建一个新目录是我的解决办法。
你能告诉我们更多关于你有哪些资源或者你估计每天上传多少张图片吗?
发布于 2011-01-03 00:35:42
如果您正在使用Server 2005或更高版本,则可以使用FileStreams。如果文件小于1MB的大小,您甚至可能有更好的性能,如果您将它们存储为VARBINARY(MAX)。存储在数据库中的最佳部分是您可以轻松地使用事务。
至于复制和备份,您可以对文件使用标准数据库复制和备份。
发布于 2011-01-03 00:51:25
如果您的DB中有空间,那么我建议您这样做,因为备份/还原变得更容易了。如果您的DB空间有限,那么文件夹结构就可以工作,尽管我不会在一个文件夹中存储超过1000个文件。因此,您会想出一个解决方案,帮助一个文件夹不超过1000个图像和文件夹保存在一个地方。如果你认为你每天有不到1000张图片,那么心理医生爵士建议的变化可能会很好,它将是每年的一个文件夹,然后是一个子文件夹,月份和白天来存储当天的所有图像。
要回答你关于热链接的问题:你最好的选择是查看参考网站(应该在图片请求的头上找到),并确保它来自你的域名。如果不是,您可以不发送任何信息,或者您发送回一个图像,让用户知道他们无法从第三方网站看到图像。
头数据可能会被欺骗,但随机访问第三方网站的访问者不仅没有做到这一点,而且可能不知道/不关心如何做。
https://stackoverflow.com/questions/4580504
复制相似问题