部署服务器时文件存储系统无法正常工作

时间:2018-07-15 12:15:16

标签: node.js mongodb heroku mlab

我有一个通过GridFS和Multer上传图像的存储引擎,图像一旦上传就被调整为正确的格式(个人资料图片被裁剪成用户想要裁剪/裁剪的方式,创建的移动缩略图等等。可以在我的本地服务器上无缝运行,但是当通过MLAB插件部署到Heroku时,认为它无法正常工作。

这里是存储引擎(我在这里提供了参考信息,它应该没有什么问题:

// Create storage engine
const storage = new GridFsStorage({
  url: process.env.MONGODB_URI,
  file: (req, file) => {
    return new Promise((resolve, reject) => {
      crypto.randomBytes(16, (err, buf) => {
        if (err) {
          return reject(err);
        }
        const filename = buf.toString('hex') + path.extname(file.originalname);
        const fileInfo = {
          filename: filename,
          bucketName: 'fs'
        };
        resolve(fileInfo);
      });
    });
  }
});
const upload = multer({ storage });

我认为这是问题所在,正如我所说的在本地服务器上100%正常工作。该位会根据用户调整图片的大小来调整图片的大小

let readstream = gfs.createReadStream(file.filename);
let outstream = gfs.createWriteStream({ filename: 'resized_' + file.filename, contentType: file.contentType})
let mobilestream = gfs.createWriteStream({ filename: 'mobile_' + file.filename, contentType: file.contentType})

gm(readstream)
  .crop(
    cropinfo.cropWidth,
    cropinfo.cropHeight,
    cropinfo.startCornerX,
    cropinfo.startCornerY)
  .resize(684)
  .noProfile()
  .stream()
  .pipe(outstream)

这是JSON的副本,其中显示了两个正在创建的文件。如您所见,调整大小后的文档的“长度”为0。

{
_id: "5b4b2da655a6010014b48d3e",
length: 390745,
chunkSize: 261120,
uploadDate: "2018-07-15T11:19:31.579Z",
md5: "d23b23ff37c9520d813382a8735a0e7d",
filename: "2bd69c4d83e39f59f6c4ef1bb809529b.jpg",
contentType: "image/jpeg"
},
{
_id: "5b4b2dc355a6010014b48d4b",
filename: "icon_2bd69c4d83e39f59f6c4ef1bb809529b.jpg",
contentType: "binary/octet-stream",
length: 0,
chunkSize: 261120,
uploadDate: "2018-07-15T11:19:31.597Z",
aliases: null,
metadata: null,
md5: "d41d8cd98f00b204e9800998ecf8427e"
}

这真的令人沮丧,因为部署没有任何更改-现在它刚刚开始起作用。

这里有什么明显的我想念的吗?

编辑:

这是我的本地主机MongoDB的json副本,表明它正在工作

{
"_id" : ObjectId("5b4a1771eb439b062341de10"),
"filename" : "icon_39e532461840adfe2c5fd23f47374db9.jpg",
"contentType" : "binary/octet-stream",
"length" : 55657,
"chunkSize" : 261120,
"uploadDate" : ISODate("2018-07-14T15:32:01.790Z"),
"aliases" : null,
"metadata" : null,
"md5" : "a6e685a4398df23e6c517365e5979357"
}

0 个答案:

没有答案