【问题标题】:Image upload on cloudinary not working in herokucloudinary上的图像上传在heroku中不起作用
【发布时间】:2021-08-29 12:42:06
【问题描述】:

我在 node.js 应用程序中使用 multer 和 cloudinary 进行图像上传。当我处于开发模式时,它工作得很好,但是在部署到 heroku 之后,我在浏览器控制台中遇到错误 服务器响应状态为 503(服务不可用)。当我检查 heroku 日志时,它显示为 at=error code=H12 desc="Request timeout" method=POST path="/api/users/upload/avatar" 我已经在heroku中添加了我的环境变量。可能是什么问题?

我的配置文件

const {config,uploader } = require('cloudinary').v2

const cloudinaryConfig = (req,res,next) => {
  config({
  cloud_name: process.env.CLOUD_NAME,
  api_key: process.env.API_KEY,
  api_secret: process.env.API_SECRET,
  });
  next()
}
  module.exports ={cloudinaryConfig,uploader}

混合文件

const DatauriParser = require('datauri/parser');

const parser = new DatauriParser();

const storage = multer.memoryStorage();
const multerUploads = multer({ storage,fileFilter:(req,file,cb)=>{
  let ext = path.extname(file.originalname);
  if (ext !== ".jpg" && ext !== ".jpeg" && ext !== ".png") {
  cb(new Error("File type is not supported"), false);
  return;
  } cb(null,true)
} }).single('image');

const dataUri = req => parser.format(path.extname(req.file.originalname).toString(),req.file.buffer)


module.exports = {multerUploads,dataUri}

我的上传控制器

const uploadImage = async(req,res)=>{
    const folder = req.path.split('/',3)[2]
    if(!req.file){
        throw new Error('Choose a picture to upload')
    }
     if(req.file){
         const file = dataUri(req).content
         const result = await uploader.upload(file,{
             folder:`MobiHub/${folder}`,
             width: 300,
             height:300,
             crop:'fill',
             gravity: "faces"
         })
         const image = result.secure_url
         res.json({image}) 
     }  
   
}

【问题讨论】:

    标签: node.js heroku cloudinary image-upload


    【解决方案1】:

    Heroku config vars 上设置 Cloudinary 环境变量(例如,process.env.CLOUD_NAME)可能会有所帮助。 或者只是尝试添加 CLOUDINARY_URL 环境变量(可以在 Cloudinary 仪表板上找到),那么您就不需要在 cloudinary.config() 上显式声明它们。

    【讨论】:

    • 我已经在heroku config中添加了环境变量
    • 嗨,尼克,由于您也在 Cloudinary 论坛上发帖,我们可以继续在该平台上为您提供帮助。
    猜你喜欢
    • 2020-03-22
    • 2016-02-23
    • 2021-09-03
    • 2021-02-20
    • 2016-04-28
    • 2016-04-07
    • 2014-08-09
    • 2021-03-20
    • 2020-03-02
    相关资源
    最近更新 更多