【问题标题】:Parse Server - Can't Access Images解析服务器 - 无法访问图像
【发布时间】:2017-09-29 08:00:11
【问题描述】:

我有一个在 MongoDB 上运行的 Parse 服务器,它在 DigitalOcean 上托管的开发服务器上运行 100%。在这里,我可以向我的服务器发送GET 请求以获取图像,并通过它的 Parse-Dashboard 访问图像。

我克隆了该 Droplet 以设置生产服务器,并且一切运行正常...除了,我无法访问从开发服务器克隆的 Parse 中的图像,或者我在初始化新的生产服务器后上传的那些。我可以发送GET 请求以获取除图像文件之外的所有其他字段。我也无法通过 Parse-Dashboard 访问图像文件 - 它在以下 URL 上返回 404 - Oh no, we can't find that page! 错误:http://server.ip/parse/files/ProdServer/de632aeb61f7265926e554fabfb25180_image1.png

其他需要注意的关键事项:

  1. 开发服务器托管在具有 SSL 的域上; 可能是 SSL 问题吗?
  2. 我正在使用 --allowInsecureHTTP 标志初始化解析仪表板
  3. 一切(甚至在 SSL 之前)都事先在开发服务器上运行
  4. 所有包 + 依赖项都是最新的

tl;博士

如何通过 Parse-Dashboard 或 GET 请求从我的 Parse 服务器访问图像文件?

【问题讨论】:

  • 在本地和远程服务器上运行时比较图像的 URL。他们是一样的吗?它是否可能引用您的本地服务器?
  • 它们是相同的,除了 IP 地址。您是否知道 Parse Server 是否将图像本地存储在特定目录中? @JakeT。
  • 这取决于您如何设置文件存储。如果您没有设置存储,我不确定会发生什么。我从未尝试过。设置 S3 是我使用 parse-server 所做的第一件事。如果您设置了一些东西但它没有使用外部资源,并且您能够提取文件,那么是的,它仅在本地可用。当你离开开发时,我会推荐一些外部的东西。
  • 是的——这就是我想要弄清楚的;它在本地哪里/如何存储?
  • 我还是建议不要使用本地文件存储。 S3 是首选,甚至还有一个易于配置的解析服务器适配器。我会走那条路。我对任何开箱即用的本地文件存储一无所知,但我不相信它的持久性。

标签: mongodb digital-ocean parse-server parse-dashboard


【解决方案1】:

我尝试的几种方法...由于这对我来说是一个复杂的过程,请允许我记录我尝试解决此问题的方法:

第一个问题是,文件存在吗?如果是,它们存储在哪里?

通过访问端口 4040 上的 parse-dashboard,我尝试通过 URL 查看图像路径……所以我知道它存在于某个地方,我递归地在整个服务器上搜索文件路径,但无济于事。

然后通过更多研究,我发现任何超过 16MB 的文件都会转换为 GridFS 对象,即图像存储在我的 MongoDB 中。访问这些对象的方式是通过一个名为 mongofiles 的实用程序。

通过运行mongofiles -d dbname list,我能够在列表视图中查看存储在我的 Parse-Server 上的所有图像。

只是为了确保图像没有损坏......

我还将图像 sftp 到我的本地计算机,幸运的是我可以查看它们。所以问题是没有正确提供图像......

下一个问题是,为什么图片没有正确提供?

所以我的 parse-dashboard 在端口 4040 上提供服务,但由于某种原因,我在各自 URL 中的图像文件路径以相同的端口 4040 开头...事实证明,在我的 Parse-Server 配置中,解析服务器 URL 指向端口 4040,但在 **** 上提供服务。通过将我的 URL 改回 ****,我的图像能够在我的解析仪表板上正确呈现,并且我也能够发送图像的 http 请求:)


tl;dr 确保您的图像文件路径在与解析服务器相同的端口上提供服务

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-19
  • 1970-01-01
  • 1970-01-01
  • 2019-12-09
相关资源
最近更新 更多