Appengine - ошибка tmp / filesytem при загрузке файла - PullRequest
0 голосов
/ 29 января 2019

У меня проблема с Appengine (GCP) и загрузкой файлов через Multer ...

Я бы хотел сохранить в моей БД изображение base64 (независимо от причины).Для этого я пытаюсь загрузить это изображение в /tmp ( очевидно для записи ) и затем закодировать его в base64, а затем сохранить в БД.

Локально, оно работает как шарм, но после развертывания он не: Error: EROFS: read-only file system, mkdir '/srv/tmp'

У вас есть какие-либо подсказки?Ниже мой упрощенный код.

'use strict'

const express = require('express')
const router = new express.Router()
const multer = require('multer')
const upload = multer({ dest: 'tmp/' })
const fs = require('fs')

// APP DEPENDENCIES
const { saveHousing } = require('../models/housing.js')


/////////////////////////////////////
router.post('/', upload.single('upload'), async (req, res) => {

  var img = fs.readFileSync(req.file.path).toString('base64')
  const housing = { IMG: { MIME: req.file.mimetype, DATA: img } }
  await saveHousing(housing)

  res.redirect(`/app/dashboard`)
})

Я бы не хотел использовать Google Cloud Storage для упрощения вещей ...

1 Ответ

0 голосов
/ 29 января 2019

Работает ли это, если вы измените 'tmp/' на '/tmp/'?

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

...