ЗАКЛЮЧЕНИЕ
https://docs.parseplatform.org/parse-server/guide/#configuring-s3adapter
Я подозреваю, что существует так много файлов PFF, которые вы можете хранить в классе Parse-Server, используя уровень бесплатного пользования AWS. У меня не было тысяч изображений, но я думаю, что достиг этого предела. У меня есть новый вопрос о том, как я могу проверить этот лимит, увеличить этот лимит (как-то заплатить Amazon?) И как я могу удалить старые записи, которые могут заполнять пространство. Мне также любопытно, как преобразовать в S3 вместо использования PFFile для хранения фактических данных - это похоже на решение, когда я перехожу к производству, поэтому мне нужно будет узнать, как это сделать. Хотел бы я просто отправить некоторые аргументы в Parse, чтобы он справился со всеми вещами s3, но я был бы шокирован, если бы это было так просто, и я не смог бы найти ни одного учебника на YouTube или Udemy ... так что, если у кого-то есть какое-то обучение, они может указать мне, я был бы очень признателен!
О Р И Г И Н А Л П О С Т
У меня есть быстрое приложение, которое загружает сообщение с файлом на сервер синтаксического анализа, на котором запущена конфигурация торговой площадки AWS для сервера синтаксического анализа. Все работало нормально месяцами и просто перестало работать. Я вернулся к старой сборке, и она не работала ни для кодирования, ни для сохранения файлов PFF ...
Нефайловые элементы данных для сообщения загружаются нормально. Я ничего не менял ни в коде, ни на сервере AWS, поэтому не знаю, на что обращать внимание. Я знаю, что iOS 12 только что вышла, поэтому я надеялся, что это может быть связано с этим?
Я надеюсь, что у кого-то уже была эта проблема и он может дать мне хоть какие-то подсказки, чтобы выследить, и кое-что проверить. Тот факт, что поля не-PFFile в объекте синтаксического анализа загружаются нормально, заставляет меня думать, что это характерно для PFFiles и swift, а не проблема сервера.
Что-то очень странное ... Я закомментировал часть кода, в которой изображение превращается в данные для PFFile, и изменил его на тот, который есть у меня в активах ... (см. Ниже) <Теперь я думаю, что это сработало только потому, что жестко закодированное изображение было меньше, поэтому для него было место в заполнении db>
if let image = UIImage(named: "B - light grey") {
if let imageData = UIImageJPEGRepresentation(image, 1.0) {
//if let imageData = UIImageJPEGRepresentation(self.choosenImage!, 1.0) {
print("start image encode to PFFile")
if let blipFile = PFFile(name: "image.jpg", data: imageData as Data) {
newBlipFile.imageFile = blipFile
if curBlip.fileCount == 0 {
curBlip.imageFile = blipFile
curBlip.imageUIImage = newBlipFile.imageUIImage
}
}
print("done image encode to PFFile")
}
}
Когда я это сделал, загрузка файла БЕЗ ОТКАЗА. Это меня очень смущает, потому что я использую "self.choosenImage!" как UIImage в нескольких UIImageViews и не имею с этим никаких проблем. У меня также нет сбоев или ошибок, которые предполагают преобразование в данные и настройку, поскольку у PFFile есть какие-либо проблемы ... почему жестко закодированное изображение стало хорошо работающим PFFile, а изображение из камеры не вызывает сбоев, а просто не отправляет в сервер? Еще заметил эту ошибку в журнале ...
Blip dropper[26789:11219152] [discovery] errors encountered while discovering extensions: Error Domain=PlugInKit Code=13 "query cancelled" UserInfo = {NSLocalizedDescription=query cancelled}
image NIL
Blip dropper[26789:11219072] [Error]: Could not store file. (Code: 130, Version: 1.17.1)
-дан
Я установил экземпляр AWS, выбрав Parse Server на базе Bitnami на «AWS Marketplace». Никаких переходников не устанавливал. У меня есть все, что установлено по умолчанию, когда вы устанавливаете какао-модуль Parse-server и начинаете использовать PFFIles в качестве типа данных. В настоящее время я обдумываю некоторые тесты проб и ошибок, такие как перезапуск экземпляра AWS.
Я почти уверен, что ваша база данных заполнена, и поэтому вы не можете хранить файлы
Когда я удаляю запись с PFFile с сервера синтаксического анализа, удаляет ли это файл? Я удалил половину строк в таблице, в которых были файлы PFFiles, а затем перезагрузил свой экземпляр AWS, чтобы проверить это. Возможно ли, что удаление строк на самом деле не привело к удалению файлов, на которые ссылаются PFFiles, и мне нужно вручную очистить их? Я использую уровень бесплатного пользования AWS, есть ли способ узнать, сколько места занимает мой сервер, чтобы проверить эту гипотезу?
Создан новый сервер синтаксического анализа, и этот новый работает так же, как и старый. Я считаю, что flovilmart был прав в том, что база данных была заполнена, и когда я удалил записи через панель управления Parse, они действительно не удалялись.
Когда вы удаляете объект, имеющий ссылку на файл, файл не удаляется, поэтому в этом есть смысл.
> как я могу проверить этот предел, увеличить этот лимит по умолчанию, файлы хранятся в базе данных, поэтому вам следует вместо этого проверить свою базу данных> но я был бы шокирован, если бы это было так просто и не удалось найти ни одного учебника на YouTube или Удеми. Это так просто, вам просто нужно настроить учетные данные, как описано в документации, и все ваши файлы после этого будут сохранены на S3. Что касается перемещения файлов из хранилища по умолчанию в S3, это возможно с помощью нескольких строк кода.





Ответ заключается в том, что сбой произошел из-за того, что в базе данных не было места для файла. Решение состоит в том, чтобы переключиться с GridStoreAdapter по умолчанию на сервере синтаксического анализа и вместо этого использовать адаптер S3. Я еще этого не делал, но это ссылка на документацию по синтаксическому анализу, которая привела меня к такому выводу.
https://docs.parseplatform.org/parse-server/guide/#configuring-s3adapter
Я борюсь с тем же самым, смогли ли вы решить свою проблему с помощью S3? Или вы придерживались GridStoreAdapter?
Я перешел на s3 и следование инструкциям было не слишком сложным. Также важно помнить, что если вы получаете сбой из-за переполнения GridStoreAdapter, вы должны фактически очистить их из mongoDB. Простое удаление их с помощью синтаксического анализа не решит этой проблемы.
Вы использовали и настраивали адаптер файлов S3 или адаптер хранилища сетки по умолчанию?