我有一个将图像上传到 Cloudinary 的程序。当我在我的程序(localhost)+ Heroku 上运行它时,它工作得很好(过去)。但现在不行了。
错误是:
未知 API 密钥“12345678910”
最令我困惑的是,当错误消息打印出“Unknown API Key: 12345678910”时,未知密钥与我的 Cloudinary API Key: 12345678910 相同。
请帮助我。 提前谢谢您。
我的.env 文件
CLOUDINARY_NAME = 'dupz*****'
CLOUDINARY_API_KEY = '532746917******'
CLOUDINARY_API_SECRET = 'WpTLLxyJZlMwjUITP**********'
这是我的 server.js 文件
const app = require("./app");
const { connectDatabase } = require("./config/database");
const cloudinary = require("cloudinary");
connectDatabase();
cloudinary.config({
cloud_name: process.env.CLOUDINARY_NAME,
api_key: process.env.CLOUDINARY_API_KEY,
api_secret: process.env.CLOUDINARY_API_SECRET,
});
这是我的Post.js文件
const Post = require("../models/Post");
const User = require("../models/User");
const cloudinary = require("cloudinary");
exports.createPost = async (req, res) => {
try {
const myCloud = await cloudinary.v2.uploader.upload(req.body.image, {
folder: "posts",
});
const newPostData = {
caption: req.body.caption,
image: {
public_id: myCloud.public_id,
url: myCloud.secure_url,
},
owner: req.user._id,
};
const post = await Post.create(newPostData);
const user = await User.findById(req.user._id);
user.posts.unshift(post._id);
await user.save();
res.status(201).json({
success: true,
message: "Post created",
});
} catch (error) {
res.status(500).json({
success: false,
message: error.message,
});
}
};
根据您在屏幕截图中从 Cloudinary 收到的错误消息,它显示您的上传请求中发送的未知 API 密钥 - 请注意,API 密钥在错误消息中的单引号内。单引号不应成为您请求中发送的值的一部分。
您应该能够通过删除
.env
文件中值周围的单引号并再次重试请求来解决该问题。
看起来你的代码是正确的,如果它以前运行良好,那么代码很可能不是问题,而是 Cloudinary 本身。
可能出现的问题
CLOUDINARY_NAME = 'dupz*****'
CLOUDINARY_API_KEY = '532746917******'
CLOUDINARY_API_SECRET = 'WpTLLxyJZlMwjUITP**********'