【问题标题】:GridFS + CarrierWave + nginx unable to get fileGridFS + CarrierWave + nginx 无法获取文件
【发布时间】:2011-09-18 16:54:08
【问题描述】:

在我的项目中,我使用 CarrierWave gem 将音频文件上传到 GridFS。上传文件后正确保存到 GridFS 但在我的应用程序中,我无法使用 MongoFiles Tool 或 GridFS-nginx 模块从 GridFS 获取它。

mongofiles get audiotracks/4dfb70d6bcd73f3488000002/data

命令导致此错误:

assertion: 13325 couldn't open file: audiotracks/4dfb70d6bcd73f3488000002/data

获取文件的唯一方法是使用 rails 控制台,它工作正常:

cc = Mongo::GridFileSystem.new(Mongo::Connection.new.db("test")).open('audiotracks/4dfb70d6bcd73f3488000002/data', 'r')

cc.read

所以如果你遇到过这样的问题或有一些想法 - 请告诉我。

【问题讨论】:

    标签: ruby-on-rails mongodb carrierwave gridfs


    【解决方案1】:

    mongofiles get 将尝试使用与 GridFS 中相同的名称和路径将文件写入磁盘。

    当 GridFS 无法像这样写入文件时,会发生断言 13325。

    你应该检查文件路径是否存在并且你有写文件的权限。或者,您可以只提供带有 --local 参数的文件名。

    mongofiles --local mytrack.mp3 get audiotracks/4dfb70d6bcd73f3488000002/data
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-08-22
      • 1970-01-01
      • 1970-01-01
      • 2023-03-19
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多