You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Don't send tags object to Parse file adapter when no tags are set #7129
We are using Digital Ocean Spaces for storing files. It is S3 compatible storage, so that we are using parse-server-s3-adapter. However, DO Spaces don't support all S3 features - one of unsupported are tags. In current version of parse-server-s3-adapter every upload fails. The problem is, that ParseFile contains tags object even when no tags are set.
Firstly, I proposed change in parse-server-s3-adapter adapter itself (see pull request parse-community/parse-server-s3-adapter#135), but after some discussion was raised question, if this should not be handled in ParseFile itself. I looked to code and by default ParseFile sets both metadata and tags to empty objects. In this case, s3 files adapter send those options to S3 as empty tags list.
Is there any reason why both tags and metadata are always empty objects and not undefined when not set? Maybe this is architectural decision, but files adapters handles case, when tags and metadata are undefined and in that case, they correctly don't set them.
Steps to reproduce
configure Parse server with Digital ocean spaces as file storage
try to upload - it fails
try to remove code, that sets metadata in Parse File S3 adapter
upload works
Actual Outcome
Current verson of Parse server don't work with Digital Ocean spaces
Expected Outcome
It should work with Digital Ocean Spaces
Server
Parse Server version: 4.5.0
Operating system: docker nodejs
Local or remote host (AWS, Azure, Google Cloud, Heroku, Digital Ocean, etc): Digital Ocean
Sure @mtrezza . If you provide me a little guidance by pointing the starting point, I can make a PR. AFAIK, this is occurring because the parse-server sends tags to the provider no matter what, even if it is not set.
That's correct. I suggest to read the original discussion that lead to the opening of this issue.
The general approach would be to only set the tags property of a Parse.File, if the tags are actually set. Let me know if you need more details, and I can take a closer look at the code.
Activity
mtrezza commentedon Jan 18, 2021
Thanks for reporting.
Can you please write a test case where the tags in
Parse.Fileare not set but an empty tag object is created instead ofundefined?mtrezza commentedon Jan 19, 2021
I have classified this as a bug with severity 4:
sarsonj commentedon Jan 20, 2021
@mtrezza I will prepare test and look on fix as well.
alioguzhan commentedon Mar 27, 2021
This is also a blocker for Linode Object Storage. I was able to make it work by downgrading the
parse-server-s3-adaptertov1.4.0mtrezza commentedon Mar 27, 2021
Thanks for confirming, @alioguzhan. Would you want to make a PR to fix this?
alioguzhan commentedon Mar 27, 2021
Sure @mtrezza . If you provide me a little guidance by pointing the starting point, I can make a PR. AFAIK, this is occurring because the parse-server sends
tagsto the provider no matter what, even if it is not set.mtrezza commentedon Mar 27, 2021
That's correct. I suggest to read the original discussion that lead to the opening of this issue.
The general approach would be to only set the tags property of a
Parse.File, if the tags are actually set. Let me know if you need more details, and I can take a closer look at the code.mtrezza commentedon Apr 2, 2021
This should be fixed by #7300