你好!
我在 Support 频道搜索过,但没找到现成的答案,所以请原谅我提出这个简短的求助问题:
我们从 2016 年左右开始使用 S3 存储 Discourse 文件。当我查看 S3 存储桶的根目录时,惊讶地发现存在比我预期更上层的目录结构,例如 optimized/、original/ 等。
大家认为安全删除根目录下的编号目录(例如 99/)吗?这可能是因为很久以前的一次误复制导致的。有可能它们很久以前被错误地复制到了错误的位置。是否有可能帖子中已经硬编码了指向这些位置的旧路径,而我担心删除会破坏这些链接?
以下是当前的显示情况,我的目标是清理它(如果需要的话):
换种说法,如果任何人已经在用 S3,请问存储根目录下的对象名称是什么?
感谢任何帮助。干杯 
我想我们可能也有点特别
因为我们从大约 2015 年开始就一直在运行 Discourse,并且多年来更换过存储位置。
我们最初使用本地存储来保存文件,随着规模增长,后来改用 S3 存储上传内容。当时我认为我们并没有通过重新生成帖子来迁移现有的文件,因此最古老的帖子仍然使用的是非本地存储的 URL。
需要说明的一点是,我们目前不会删除任何内容。尽管组织方式多年来有所变化,但涉及的数量很小,因此最稳妥的做法是保留现有内容。
sam
(Sam Saffron)
4
说实话,我不知道这些 96->99 文件夹是怎么来的,它们不是我们存放上传文件的地方。
谢谢查看,@sam,知道了就好——我猜是不是我们手动把现有的内容复制到 S3 时出了问题。不过并没有造成任何损害。
在 S3 存储桶根目录下有:
_emoji/
_optimized/
optimized/
original/
tombstone/
此外还有一大批编号目录,从 1/ 到 225/。每个编号目录中包含一个图片文件,文件名类似 ‘874c0706216382af.jpg’。
tombstone/ 目录设置了 S3 生命周期规则,30 天后标记为删除。
所以猜测一下,是否只使用了 optimized/、original/ 和 tombstone/?
michaeld
(Michael - Communiteq)
7
这些文件在非常古老的论坛(大约 2014 年)中一直存在。我认为它们早于 optimized 和 original,我怀疑它们仍被引用。
michaeld
(Michael - Communiteq)
8
我忍不住想查证一下。这确实是一种旧的上传方案,但被弃用的时间比我预想的要晚,是在2015年5月,通过此提交实现的。
这些上传功能目前仍在使用,因此请勿删除它们!
谢谢 Michael。由于这些文件是我们 2014 年刚起步时创建的,文件编号都很小,所以我们会保留它们原来的位置。
有趣的是,我们最近迁移了服务器,选择了 Discourse 备份/恢复的方式(而不是直接在原有的 Unix 版本基础上升级)。我怀疑(虽然不能 100% 确定)恢复过程没有正确放置这些本地文件。它们确实包含在备份归档中,但恢复过程似乎只对优化后的/原图级别的图片生效。
这倒不是什么大问题,因为当我们发现新旧服务器的 uploads 目录内容不一致时,可以自己从备份归档中用 tar -x 解压出来。不过,这可能会让其他人踩坑,所以想在这里提一下。
尽管我们 99.9% 的上传文件现在都通过 S3 提供(我们很早就从本地存储切换到了 S3),但我认为在最初手动创建 S3 存储桶时,我们可能把本地文件也一并上传了。事后看来,我们本可以重新生成帖子,但鉴于这些帖子非常小且年代久远,它们使用的本地文件上传 URL 一直都能正常工作。