обновление развертывания - загруженные изображения удаляются после повторного развертывания в облаке Google - PullRequest
0 голосов
/ 20 января 2020

Итак, у меня есть веб-приложение node js, в этом веб-приложении есть папка для хранения изображений, загруженных пользователями из мобильного приложения. Я загружаю изображение в папку, используя строку base64 изображения и используя fs.writeFile для сохранения изображения в папке, например:

fs.writeFile(__dirname + '/../images/complaintImg/complaintcase_' + data.cID + '.jpg', Buffer.from(data.complaintImage, 'base64'), function (err) {
    if (err) {
        console.log(err);
    } else {
        console.log("success");
    }
});

Проблема заключается в том, что всякий раз, когда приложение повторно развертывается в облаке Google, изображения будут удалены. Это потому, что папка с изображениями локальной версии приложения пуста - когда пользователь загружает изображение, я не получаю локальную копию этого изображения.

Как предотвратить удаление изображений с каждым развертыванием? Поскольку приложение постоянно обновляется (изменяется на js или html файлы), я не могу удалить образы при каждом развертывании. Как обновить развертывание, чтобы развертывать только определенные файлы? команда gcloud app deploy, похоже, развертывает весь проект. или я должен загрузить изображения непосредственно в облачное хранилище Google?

, пожалуйста, помогите, в настоящее время мобильное приложение еще не выпущено в паблике c, поэтому удаление изображений при каждом развертывании все еще не является большой проблемой, но это произойдет после того, как оно будет выпущено для * 1014 це *. потому что загружаемые ими изображения очень важны. заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 20 января 2020

Как указано в ответе Дана Корнилеску, для загруженных пользователем файлов их следует хранить в облачном хранилище для GAE Standard или для GAE Flexible .

Так же, как для справки есть альтернатива для тех, кто использует Python 2.7, Java 8 или PHP 5, то есть BlobStore API

0 голосов
/ 20 января 2020

Похоже, что выбранный вами каталог __dirname может быть /tmp или, если вы используете гибкую среду, какой-то другой каталог , локальный для вашего экземпляра . В этом случае образы будут исчезать при каждом запуске новых экземпляров (что всегда происходит при новом развертывании, но может происходить и между развертываниями). Ожидается, что экземпляры всегда запускаются «с нуля».

Вам необходимо хранить файлы, которые создает ваше приложение, и вы хотите сохранить экземпляр (перезапуск) в постоянном продукте хранения, таком как Cloud Storage, см. Использование облачного хранилища (или Использование облачного хранилища для гибкого env). Обратите внимание, что вы не можете использовать обычные вызовы файловой системы с облачным хранилищем, вам нужно использовать документированную клиентскую библиотеку.

...