Я использую jdenticon для создания пользовательских аватаров при регистрации в приложении узла / экспресса.
Работая локально, я могу сделать это:
- Создание идентификатора с использованием jdenticon
- Сохранить файл локально
- Загрузить локальный файл в cloudinary
Вот как я это делаю
const cloudinary = require("cloudinary");
cloudinary.config({
cloud_name: 'my-account-name',
api_key: process.env.CLOUDINARY_API,
api_secret: process.env.CLOUDINARY_SECRET
});
// 1. Generate identicon
let jdenticon = require("jdenticon"),
fs = require("fs"),
size = 600,
value = String(newUser.username),
svg = jdenticon.toPng(value, size);
let file = "uploads/" + value + ".png";
// 2. Save file locally
fs.writeFileSync(file, svg);
// 3. Upload local file to cloudinary
let avatar = await cloudinary.v2.uploader.upload(file);
// Do stuff with avatar object
Это прекрасно работает для локального запуска моего приложения. Однако, насколько я понимаю, Я не могу хранить изображения на Heroku (если это не так, то было бы полезно узнать об этом и значительно упростить ситуацию), поэтому мне нужно будет сохранить сгенерированный тождество напрямую в облачный.
Как я могу загрузить сгенерированное изображение (svg = jdenticon.toPng(value, size);
) напрямую в облачную систему без предварительного сохранения?
Любая помощь будет оценена!