After calling the get object function provided by the library, I am returned an EventLoopFuture<GoogleStorageObject> - I call flatMap(to:) on the EventLoopFuture<GoogleStorageObject> in order to grab the actual GoogleStorageObject and use the properties I need however I get this error inside the flatMap: HTTPError.contentType - HTTP message did not have JSON-compatible content-type.
I don’t understand why it is giving me this error inside the flatMap since the type of data returned defaults to json, also when I get the list of buckets and am returned EventLoopFuture<GoogleStorageBucketList> and I call flatMap(to:) on that object, it unwraps the future into GoogleStorageBucketList object with no issues which leads me to believe I am calling flatMap(to:) appropriately so I would appreciate some help if anyone has used the same library or encountered the similar error. Thanks in advance!
Below is a screenshot of my code and the error message along with comments that break down what I mentioned I did above.
When I add catchMap to the flatMap and print the error, It just gives me the same error [HTTPError.contentType: HTTP message did not have JSON-compatible content-type.] and when I breakpoint on line 99 where the flatMap is called and jump inside, the code breaks with the same error inside some random code which I think is located in EventLoopFuture.swift and the value is never reached.
I know i’m not naming the name of my bucket or object wrong because I copied/pasted the string and my permissions are correct considering Im not getting a 403 Forbidden error, there does not seem to be a reasonable explanation for why the call fails
The images in this comment depict how my files are organized in my GCP Storage Bucket in order to help illustrate the points I am about to make.
Few things to point out:
When I try to pull the object and it is placed inside a folder within my bucket, ex)
Buckets / :bucket_name / images / icon.png
Images related to this example, notice I am inside images/
I receive the HTTPError.contentType: HTTP message did not have JSON-compatible content-type.
When I place the file directly under the bucket with no folder, ex)
Buckets / :bucket_name / icon.png
I do not receive any error and am able to pull the object with no problems
It’s become obvious that this content-type error is showing up because of the folders, however I need to keep my files organized within folders in my bucket. Im wondering if this is a minor bug with the Vapor GCP Storage library or if it’s a GCP issue since the their “Folder” objects can’t be appropriately parsed into JSON, or if this is just a Vapor bug???