Parse -server PFFile uploads just stopped working yesterday?

210 Views Asked by At

C O N C L U S I O N

https://docs.parseplatform.org/parse-server/guide/#configuring-s3adapter

I suspect that there are just so many PFFiles you can store in a Parse-Server class using the AWS free tier. I didn't have thousands of images but I think I hit this limit. I have a new question as to how I can check this limit, increase this limit (paying amazon somehow?), and how I can remove old records that may be filling the space. I am also curious how to convert to S3 instead of using the PFFile to store the actual data sounds like the solution for when I move to production as well so I will have to learn how do that. I wish I could just send some arguments to Parse and have it handle all the s3 stuff, but I would be shocked if it is that easy and can't find any tutorial on youtube or Udemy... so if anyone has any training they can point me to I would really appreciate it!

O R I G I N A L P O S T

I have a swift app that uploads a post with a file to a parse server running AWS marketplace configuration for a parse-server. Everything has been working fine for months and it just stopped working. I reverted to an old build and that didn't work either for encoding and saving PFFiles ...

The non-file data elements for the post ARE loading just fine. I haven't changed anything on the code nor on the AWS server so I am not sure what to look into. I know that iOS 12 just came out so I was hoping this may be related to that?

I am hoping that that someone has had this issue before and can at least give me some clues to hunt down and things to check out. The fact that the non-PFFile fields on the parse object are loading just fine leads me to believe this is particular to PFFiles and swift and not a server issue.

Something very odd... I commented out the section of code where the image is getting turned into data for a PFFile and changed it to one I have in assets...(see below) <I now think this only worked because the hard coded image was smaller so there was room for it in the filling up 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")
}
}

When I did this the file upload WITH NO FAILURE. This confuses me greatly because I use "self.choosenImage!" as a UIImage in multiple UIImageViews and have no problems with it. I also get no failures or errors that suggest the conversion to data and setting as a PFFile has any issues... why would the hardcoded image become a well behaving PFFile but the one from camera roll raises no failures but just doesn't post to the server? I also noticed this error in the log...

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)

-dan

1

There are 1 best solutions below

2
On

The answer is that the failure was due to the database not having space for the file. The solution is to switch from parse server's default GridStoreAdapter and instead use an S3 adapter. I haven't done this yet but this is the link to the parse documentation that led me to that conclusion.

https://docs.parseplatform.org/parse-server/guide/#configuring-s3adapter