pfaffman
(Jay Pfaffman)
2024 年7 月 3 日 19:43
1
我使用了 将两个 Discourse 站点合并为一个 ,大部分都成功了,但第二个站点的图片没有显示出来。
我可以这样做:
p=Post.find_by(topic_id: 222435, post_number: 11)
short_url=p.raw.match(/(upload:\/\/.*?)\)/)[1]
up=Upload.sha1_from_short_url(short_url)
up.url 看起来像 /uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg,并且 cd /shared; ls uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg 可以找到文件。
但是 https://host/uploads/default/original/3X/9/e/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg 会给我一个 nginx 的 404 错误。
看起来如果 Upload 存在并且文件存在,NGINX 应该会让我访问它。我错过了什么?
对于一些图片,我通过粘贴测试站点的图片 URL 来“解决”了这个问题,这会生成图片,然后将其转换为上传(据我所知,就是我找到的那个上传),然后如果我重建帖子,它就会有图片。
我尝试过这样做:
f=File.open('/shared/uploads/default/original/2X/9/9ebb54f0e825c05df7f6df271a5cfbdc95a6332c.jpeg')
upload = UploadCreator.new(f, 'upload.jpeg').create_for(-1)
来做和粘贴图片远程 URL 相同的事情,但那也不起作用。
pfaffman
(Jay Pfaffman)
2024 年7 月 11 日 14:09
2
嘿 @RGJ 。你有没有什么提示,关于如何获取这些似乎存在于数据库和文件系统中的图像,以便在重新烘焙时进行渲染?
RGJ
(Richard - Communiteq)
2024 年7 月 11 日 16:36
3
我讨厌 调试这类错误。
大多数时候,我只是在 Rails 控制台中手动执行控制器中的代码。
这次我猜 404 可能是来自第 111 行
end
end
render json: uploads.to_json
end
def show
# do not serve uploads requested via XHR to prevent XSS
return xhr_not_allowed if request.xhr?
return render_404 if !RailsMultisite::ConnectionManagement.has_db?(params[:site])
RailsMultisite::ConnectionManagement.with_connection(params[:site]) do |db|
return render_404 if SiteSetting.prevent_anons_from_downloading_files && current_user.nil?
if upload =
Upload.find_by(sha1: params[:sha]) ||
Upload.find_by(id: params[:id], url: request.env["PATH_INFO"])
unless Discourse.store.internal?
local_store = FileStore::LocalStore.new
return render_404 unless local_store.has_been_uploaded?(upload.url)
Discourse.store.list_missing_uploads(skip_optimized: true) 会给你什么?
1 个赞
pfaffman
(Jay Pfaffman)
2024 年7 月 11 日 16:47
4
Richard - Communiteq:
我讨厌 调试这类错误。
我们在这方面是一样的。但我很确定你比我擅长。非常感谢你的提示。
我正在尝试这样做。
这似乎是个不错的猜测。谢谢!
nil。skip_optimized: false – 也是一样。
我设法修复了一个帖子的上传问题,但显然没有做好笔记。 但我做了很多事情才做到这一点;我大部分时间都希望至少有可能做到。
1 个赞