Я пытаюсь использовать облачный код для проверки того, находится ли предоставленное пользователем изображение в поддерживаемом типе файла и не слишком большой.
Я знаю, что мне нужно выполнить эту проверку на стороне сервера, и я думаю,Я должен сделать это с помощью Cloud Code с использованием beforeSave - в документе даже есть конкретный пример о проверке данных, но он не объясняет, как обрабатывать файлы, и я не мог понять это.
Я пыталсядокументированный метод сохранения файлов, т. е.
file = fileUploadControl.files[0];
var parseFile = new Parse.File(name, file);
currentUser.set("picture", parseFile);
currentUser.save();
и в облачном коде, Parse.Cloud.beforeSave(Parse.User, (request, response) => { // code here });
Но 1. это все же фактически сохраняет файл на моем сервере, верно?Сначала я хочу проверить размер файла, чтобы не сохранять слишком много больших файлов ...
И 2. Даже тогда я не знаю, что делать в обратном вызове beforeSave.Кажется, я могу получить доступ только к URL-адресу сохраненного изображения (доказательство того, что оно было загружено), и кажется очень нелогичным сделать еще один запрос https, чтобы проверить размер и тип файла, прежде чем решить, следует ли продолжить присоединениефайл для объекта User.
(в настоящее время я использую remote-file-size
и file-type
для проверки размера и типа загруженного файла, но здесь также нет успеха).
Iтакже пытался вызвать функцию Cloud, но мне кажется, что я поступаю неправильно, и к тому же я сталкиваюсь с теми же проблемами.Я могу вызвать функцию Cloud и передать сохраненный ParseFile в качестве параметра, а затем я знаю, как сохранить его в объекте User из кода Cloud с помощью мастер-ключа, но, как указано выше, он все равно включает загрузку файла на сервер и последующую-выбор его по URL.
Я что-то здесь упускаю?Нет ли способа сделать что-то вроде beforeSave на Parse.File, а затем остановить сохранение файла, если он не соответствует определенным критериям?
Cheers.