解析服务器 - 无法访问图像
Parse Server - Can't Access Images
我在 MongoDB 之上有一个 Parse Server 运行,在我托管在 DigitalOcean 上的开发服务器上 运行 100% 没问题。在这里,我可以向我的服务器发送 GET
请求以获取图像,以及通过它的 Parse-Dashboard 访问图像。
我克隆了那个 droplet 来设置生产服务器,一切正常 运行... 除了 ,我无法访问来自 Parse 的图像要么是从开发服务器克隆的,要么是我在初始化新的生产服务器后上传的。我可以发送 GET
请求来获取所有其他字段,图像文件除外。我也无法通过 Parse-Dashboard 访问图像文件 - 它 returns 一个 404 - Oh no, we can't find that page!
错误,在以下 URL: http://server.ip/parse/files/ProdServer/de632aeb61f7265926e554fabfb25180_image1.png
其他需要注意的关键事项:
- 开发服务器托管在具有 SSL 的域上; 会不会是 SSL 问题?
- 我正在使用
--allowInsecureHTTP
标志初始化解析仪表板
- 一切(甚至在 SSL 之前)都事先在 Dev Server 上运行
- 所有包 + 依赖项都是最新的
tl;博士
如何通过 Parse-Dashboard 或 GET
请求从我的 Parse Server 访问图像文件?
我尝试了几种方法...由于这对我来说是一个复杂的过程,请允许我记录下我尝试解决此问题的方法:
第一个问题是,文件是否存在?如果是这样,它们存储在哪里?
通过在端口 4040 上访问我的解析仪表板,我试图通过 URL... ,但无济于事。
然后通过更多研究我发现任何超过 16MB 的文件都会被转换成 GridFS object i.e. images are stored in my MongoDB. How you access these objects are through a utility called mongofiles.
通过 运行 mongofiles -d dbname list
我能够在列表视图中查看存储在我的 Parse-Server 上的所有图像。
只是为了确保图像没有损坏...
我也将图像通过 sftp 传输到我的本地计算机,幸运的是我可以查看它们。所以问题是图片没有被正确提供...
下一个问题是,为什么图片没有正确提供?
所以我的解析仪表板在端口 4040 上提供服务,但出于某种原因,我在各自 URL 中的图像文件路径以相同的端口 4040 开头...事实证明在我的 Parse-Server 配置中,parse-server URL 指向端口 4040,但在 **** 上提供服务。通过将我的 URL 改回 ****,我的图像能够在我的解析仪表板上正确呈现,并且我也能够发送图像的 http 请求:)
tl;dr 确保您的图像文件路径与您的解析服务器所服务的端口相同
我在 MongoDB 之上有一个 Parse Server 运行,在我托管在 DigitalOcean 上的开发服务器上 运行 100% 没问题。在这里,我可以向我的服务器发送 GET
请求以获取图像,以及通过它的 Parse-Dashboard 访问图像。
我克隆了那个 droplet 来设置生产服务器,一切正常 运行... 除了 ,我无法访问来自 Parse 的图像要么是从开发服务器克隆的,要么是我在初始化新的生产服务器后上传的。我可以发送 GET
请求来获取所有其他字段,图像文件除外。我也无法通过 Parse-Dashboard 访问图像文件 - 它 returns 一个 404 - Oh no, we can't find that page!
错误,在以下 URL: http://server.ip/parse/files/ProdServer/de632aeb61f7265926e554fabfb25180_image1.png
其他需要注意的关键事项:
- 开发服务器托管在具有 SSL 的域上; 会不会是 SSL 问题?
- 我正在使用
--allowInsecureHTTP
标志初始化解析仪表板 - 一切(甚至在 SSL 之前)都事先在 Dev Server 上运行
- 所有包 + 依赖项都是最新的
tl;博士
如何通过 Parse-Dashboard 或 GET
请求从我的 Parse Server 访问图像文件?
我尝试了几种方法...由于这对我来说是一个复杂的过程,请允许我记录下我尝试解决此问题的方法:
第一个问题是,文件是否存在?如果是这样,它们存储在哪里?
通过在端口 4040 上访问我的解析仪表板,我试图通过 URL... ,但无济于事。
然后通过更多研究我发现任何超过 16MB 的文件都会被转换成 GridFS object i.e. images are stored in my MongoDB. How you access these objects are through a utility called mongofiles.
通过 运行 mongofiles -d dbname list
我能够在列表视图中查看存储在我的 Parse-Server 上的所有图像。
只是为了确保图像没有损坏...
我也将图像通过 sftp 传输到我的本地计算机,幸运的是我可以查看它们。所以问题是图片没有被正确提供...
下一个问题是,为什么图片没有正确提供?
所以我的解析仪表板在端口 4040 上提供服务,但出于某种原因,我在各自 URL 中的图像文件路径以相同的端口 4040 开头...事实证明在我的 Parse-Server 配置中,parse-server URL 指向端口 4040,但在 **** 上提供服务。通过将我的 URL 改回 ****,我的图像能够在我的解析仪表板上正确呈现,并且我也能够发送图像的 http 请求:)
tl;dr 确保您的图像文件路径与您的解析服务器所服务的端口相同