GridFS + CarrierWave + nginx не может получить файл - PullRequest
1 голос
/ 20 июня 2011

В моем проекте я загружаю аудиофайлы в GridFS, используя гем CarrierWave. После загрузки файл должным образом сохраняется в GridFS, но в моем приложении я не могу получить его из GridFS с помощью инструмента MongoFiles или модуля GridFS-nginx.

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

Так что, если вы столкнулись с подобной проблемой или у вас есть идеи - пожалуйста, сообщите мне.

1 Ответ

0 голосов
/ 07 июля 2011

mongofiles get попытается записать файл на диск с тем же именем и путем, что и в GridFS.

Утверждение 13325 происходит, когда GridFS не может записать такой файл.

Вы должны проверить, существует ли путь к файлу, и у вас есть разрешение на запись файла. В качестве альтернативы вы можете просто указать имя файла с параметром --local.

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