Една опция е да качите изображението в Cloudinary в страната на клиента и запазете върнатия URL адрес в MongoDB с вашия собствен API. Cloudinary прави повече от това да хоства вашите изображения, но също така се справя с манипулиране и оптимизиране на изображения и други.
По принцип това, което ще трябва да направите е:
- Регистрирайте се за акаунт в Cloudinary
- Отидете в Настройки -> Качване
- Добавете „предварителна настройка за качване“ с „Неподписан режим“, за да активирате неподписано качване в Cloudinary
Тогава вашата функция за качване може да бъде нещо подобно:
async function uploadImage(file) { // file from <input type="file">
const data = new FormData();
data.append("file", file);
data.append("upload_preset", NAME_OF_UPLOAD_PRESET);
const res = await fetch(
`https://api.cloudinary.com/v1_1/${YOUR_ID}/image/upload`,
{
method: "POST",
body: data,
}
);
const img = await res.json();
// Post `img.secure_url` to your server and save to MongoDB
}