我有一个Umbraco(v6.1.6)网站,托管在Azure Hosted(网站和数据库)上。
最近客户报道,有些图片已经从网站上消失了!
查看CMS后台,内容节点正在引用媒体项目,但是有些'这些项目不再出现在媒体部分!但是,媒体文件按预期存在于/ media文件夹中的Web服务器上!
现在,这应该作为单个实例站点运行,但看起来该站点运行了多个(3)实例一段时间,例如加载丢失的图像时。 [所有未受影响的媒体都具有较低的ID(<10000),而媒体部分中缺少的项目具有较高的ID(20000或50000)]
该网站现在又回到运行一个实例。
问。有没有办法根据/ Media文件夹中实际存在的媒体重新生成Umbraco Media部分中的项目?
答案 0 :(得分:0)
您需要做的事情很大程度上取决于您的网站状态以及在3个实例中运行时发生了什么......以及您希望得到的结果!
umbraco中媒体的元数据存储在数据库中,实际文件存储在磁盘上。如果您的站点在3个实例中运行使用相同的数据库但磁盘上的文件位置不同,您实际上应该看到数据库中存在媒体项,即使这些文件可能分散在文件系统的3个实例中。 / p>
然而,听起来你说这些文件都存在于磁盘上,但媒体项并不都存在于数据库中。你能否证实这一点(因为除非你还运行了3个不同的数据库,否则听起来很奇怪)。
总而言之,这里的一切听起来都很奇怪,因为运行3个实例还应该要求你运行并使用3个不同的主机名上传文件的编辑者访问它?
无论我认为什么都不是解决问题的简单方法。没有办法让umbraco&#34;重新索引&#34;基于文件的媒体文件夹。我为破损的媒体库(通常是自身破坏)所做的是将内存中的所有现有媒体项加载,然后遍历文件系统以查看库中缺少的内容并重新创建这些媒体项并上传文件给他们。请记住将您正在重新创建的文件记录为媒体项目,以便在处理完孤立文件后对其进行文件系统删除。
如果你能对这个问题有所了解,我会看看能否为你提供更好的解决方案。