6

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

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

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

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

tl;博士

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

4

1 回答 1

5

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

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

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

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

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

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

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

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

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


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

于 2017-05-04T22:02:54.697 回答