2016-11-10 4 views
0

Я создал проект, который находится здесь: https://github.com/dartem/upload_files, и он загружает файл и сохраняет его с помощью FilesCollection. Тем не менее, похоже, что фактический файл временно сохраняется в/cdn/storage, и как только я перезапускаю Meteor или я открываю окно инкогнито, фактический файл не существует.Meteor/React.js: сохранить файл изображения на сервер

Я указываю каталог путей, который является активами/приложением/uploads/Images, но изображение не сохраняется в этом каталоге. Как сохранить фактический файл в этом каталоге?

ответ

0

Я запустил вашу демоверсию и сохранил файлы в этом каталоге.

Не рекомендуется хранить файлы в. Meteor/local - в основном файлы временные - метеор будет удалять и заменять их при его восстановлении. Это объясняет, почему вы не можете найти их позже.

Также можно записать файлы в общий каталог, но это приведет к перестройке вашего приложения при каждом сохранении файла, что не является хорошим побочным эффектом.

Я бы порекомендовал вам сохранить файлы только в gridFS или AWS (или любой другой опции хранения). Вы можете сохранить их в папку где-нибудь еще в файловой системе, если у вас есть способ их обслуживания (какой-то веб-сервер, такой как apache, express или что-то еще). Ваш выбор основан на том, что у вас есть.

+0

Спасибо за ваш ответ. Если я хочу сохранить их в папку с файлами public/images/uploads, что было бы лучшим способом для этого? Я думал о FS от Node, но сразу получил множество ошибок. Любые предложения/примеры? В принципе, я хочу загрузить/переместить файлы в общий каталог, чтобы эти файлы физически существовали там. – Art

+0

С сервера вы можете использовать fs, без проблем. В разработке, если вы пишете в/общедоступный каталог, он будет принудительно перестраивать каждый раз, что не поможет вашему рабочему процессу разработки, на самом деле случайный выбор времени восстановления является проблемой сразу. Я думаю, что если вы создадите папку вне своего метеорного проекта, скажем/Users/mikkel/myproj/uploads и символизируем его из вашего общедоступного каталога, то он будет/public/uploads, тогда он может не сделать пересоединение, и вы можете, возможно, обратиться к файлам из вашего приложения как/uploads/... Возможно, вы сможете сделать подобную вещь в производстве, не опасаясь перестройки. – Mikkel

+0

Спасибо, Миккель. Я до сих пор не знаю, как заставить его работать, но я понял общую идею. Codewise, где я могу найти примеры кода для комбинации Meteor/React? Я уже пробовал пакеты Meteor FS-Node, но я не мог понять, как заставить их работать для моего приложения-демонстрации. Все они говорят что-то вроде Npm.require, которое сразу давало мне ошибки. – Art

Смежные вопросы