Services Plugins FAQs

☁️ AWS File Uploader - New Plugin from Zeroqode

I’m having an issue where the URL field the plugin writes to the bubble database is different than what’s shown in S3.

The issue has to do with spaces in file names:

  • Plugin - sometimes converts them to + and sometimes converts them to %20
  • AWS - always converts them to +

This is a problem for me because I have some AWS Lambda functions that write to the Bubble DB and expect the names to match.

Would it be possible to always write S3 URLs with + for spaces like AWS?

Here’s an example:

I have a repeating group. Each RG cell has a Question thing. Each cell also has a popup element triggered by a button. The popup contains the S3 uploader plugin input and allows the user to create an Answer thing.

This can cause the plugin to write incorrect info to Bubble if the page with the RG is not refreshed in between S3 uploads.

I have my Create Answer workflow reset relevant inputs but that doesn’t seem to affect the S3 uploader.

So when I go to answer a second question I still see the name of the previous file uploaded.

I can change the file by clicking on the input and selecting a new file but this doesn’t always work as shown in the screenshot below.

I answer 4x Questions from the repeating group in the order shown in the AWS window. But the order gets mixed up in Bubble.

Notice the 2nd video shows up in the 2nd and 3rd spots, the 3rd video shows up in the 4th spot and the 4th video isn’t shown in Bubble.

Here’s a screenshot showing that the Upload File Type input was properly reset by the reset inputs action but that the uploader was not.

Any advice on this? For obvious reasons, need the Bubble thing to have the link to the correct S3 object.

Hi, @max!

We investigated the plugin ability to take dynamic values. So, when accessing the prefix value in the plugin code, it can only get the value that is in this dynamic value and exactly at that moment in time. At this point, we cannot get the value that was in this dynamic value before or after.
Thus, you need to ensure that your dynamic value is ready when you need it.

Best, Julia.

Hi, @tjc4!

Thanks for the details :pray: We need to investigate this in order to understand what is going on.

Could you please add our support@zeroqode.com account to your collaborator’s list in Settings -> Collaboration so we could check the issue inside your application. Plus, please tell us the name of your Bubble application and page name where you develop it, it would be way easier for us to help you solve the issues.

Note: avoid the warning message regarding Professional plan, as we are an agency and you can easily add us to your collaborators.

Best, Julia.

Hey Julia,

Just for my understanding: I am able to set & update the value dynamically in the plugin before the upload starts. However, the plugin only writes the value that was available on page load and not one that it took later.
So, it can only take the prefix value that is available on page load and for it to change the page has to be refreshed with the new prefix value, right?

@Julia thanks for the reply. I’ve added zeroqode as a collaborator.

For the form resetting issue:
Name of app is “idojo”. Page is “app”. Within app there is a group “Page Progress” that has the RG “RG - Questions (Progress)”. Each RG cell has a button that when clicked shows the popup “Popup Upload”.

For the handling of spaces:
Here’s a sample video which often results in a name mismatch between Bubble and AWS. Here’s another.

1 Like

@tjc4, thanks for the provided access and info. We’ll check this and get back to you asap.

Best, Julia.

@max, Currently, the plugin gets the value while the page load, but I’m not sure about the refreshing page, need to check this. I get back to you asap with an update.

UPD: We rechecked the plugin and yes, it should take the prefix value that is available on page load and for it to change the page has to be refreshed with the new prefix value

Best, Julia.

Hi @Julia
found another issue: if the fileuploader is set to “allow image processing = yes”, images in portrait mode uploaded from iOS devices are turned by 180 degrees. This doesn’t happen for landscape images or when image processing is turned off. However, to save hosting space, it would be great to be able to use this functionality properly. Thanks!

Setting:
image

Result:

Thanks!

Hi, there!

Let’s go in order :slightly_smiling_face:

Our plugin uses for URL encoding and URL decoding standard functions. There the spaces (" ") are encoded as %20. This is done in consistence with the specifications, and the plugin is built so, that to work according to the specifications. Unfortunately, AWS uses ‘+’ for space encoding which not the standard way and was obviously due to some legacy problems.

Please have a look at this old AWS forum thread: https://forums.aws.amazon.com/thread.jspa?threadID=55746 where you can find some more information about this. So, I’m afraid we cannot change this option for this plugin. Apologies for the inconvenience. :pray:

We have investigated this case and found out that the Bubble reset popup function will not reset all our plugin functionality. To be able to reset the plugin uploader there is a plugin element ‘Reset input’ action, which can be used in this case. The important thing here is to use the ‘Reset input’ action AFTER the popup has been shown. Here is a screenshot as a reference.

To be able to check this, could you please share screenshots with plugin settings, iOS and browser version that was used. Thanks :pray:

Looking forward to hearing from you!

Best, Julia.

@Julia

A few comments on this:

  1. The Zeroquode plugin doesn’t encode spaces as %20 as your reply implies. It sometimes encodes spaces as %20 and sometime encodes spaces as +. In fact, it’s more common for the plugin to encode spaces as +. My original post’s screenshot shows this. More examples in screenshot below.
  2. Just because a product adheres to specifications - and per my first bulleted point I’m not sure that it does - does not mean the specs make sense. If you’re creating a plugin specifically for S3, the specs should state that the plugin is to write a URL that matches the actual S3 URL.

As such, I ask that you please reconsider your stance on this issue. Zeroquode already writes most S3 URLs with + for space so it can be done. And since this plugin was specifically designed to work with S3, writing URLs in the same format as S3 is the only solution that makes sense

These are all file names written by the plugin with + for space. %20 for space is the exception.

I haven’t been able to get this to work. Can you provide more detail? Specifically on “Step 3 - Reset input Fileuploader B”?

Here are my reset options:
image

Option 1: it’s obviously not password related.

Option 2: Reset relevant inputs resets inputs used in a workflow. I already do this everytime the S3 Plugin is used to create an upload. See screenshot:

Option 3: I already had a “Reset a group/popup” before “show popup” targeting the entire popup (see Step 1). I added a second after “show popup” (see Step 5) targeting the S3 input’s parent group. That did not work.

From your screenshot and description, it seem you’ve targeted the input directly but I don’t know how to reset something that isn’t a group/popup. In other words, I cannot select the S3 uploader element directly.

You suggest there is a plugin element ‘Reset input’ action but I cannot find it (note: I’m working with version 1.57.0 which appears to be the latest version).

The only plugin action I can find is the one shown below which does not reset the inputs.

image

Can you please clarify? Thank you!

Hello @tjc4

Let me provide insight on the matter.

Thank you for your feedback here, and providing details on the “issue” it appears that it may seem that encoding some “urls” with a plus sign is indeed on your side, however the plugin itself is designed to work with web standards when URL encoding replaces unsafe ASCII characters with a “%” followed by two hexadecimal digits.

I understand that plugin works with AWS and it is designed to upload to that file storage, however we created with a more universal approach of url encoding.

Looking at your urls, we could not replicate this type of behavior on our side I’m afraid, and also in our logic there is no option to offer “+” sign for unsafe characters.

Thanks for your understanding.

Kind Regards,
Dumitru

Hi, @tjc4!

I have checked your app and found this option. Please make sure you are checking the same page which contains the FileUploader element because if the page contains only FileuploadeGUI element this action won’t be able.

Here are the settings of the step-3

Best, Julia.

@Dumitru, unsure why you couldn’t replicate. I get the + much more often than I get the %20.

Video proof:

@Julia, yes, I found that option after I replied. It appeared when I added a GUI element.

I currently use the NoGUI element because (1) I don’t need or want GUI, (2) the GUI element does not work for me, (3) I tried getting my GUI element issues resolved (see post below) but didn’t feel like I got much help and gave up.

Here’s my previous post where I raised the GUI not working issue.

Here are my S3 bucket’s permissions:

It seems I need to use the GUI element so please tell me how to make it work. Thanks!

Hi, @tjc4!

I see. I am so sorry that you have faced problems with this. Let me familiarize with another thread and issue described in it and check this carefully. I’ll do my best to help you!

Let me jump in here. So, it is a very weird situation. We have tested the Uploader inside your app as well and uploaded a couple of files (via Chrome/Windows and Safari/iOS) and all the files have %20 instead of +. Here is a screenshot of the result that can be seen in your app.

Looking forward to hearing from you!
Best, Julia.

@Julia, please do let me know how to get the GUI uploader working.

On encoding, your upload tests prove nothing. As mentioned in my video, I’ve only found two files that encode as %20.

I shared links to those two videos in one of my previous posts as examples of mismatches between Bubble URL (%20) and S3 URL (+).

You then took those two files that I have already confirmed produce %20 tested them and said “look, all the files we tested encode as %20.”

I can tell they’re the same two files from the names. You also tested a third file with no spaces in the name (thus no potential for error).

Also, no matter how you or Dumitru spin it, mismatching URLs between Bubble and S3 is a bug, not a feature. You can do lots of cool stuff in AWS beyond S3. But if you can’t send data back from AWS to Bubble because “do a search for” in Bubble doesn’t return any results because the URLs don’t match then you can’t really do any of the other cool stuff AWS can do.

@tjc4,

Yes, sure, we are working on this matter. As soon as I have the relevant info, I’ll get in touch.

Considering the testing process, we really tried to reproduce your issue to get the source of the problem in order to fix it. A file without spaces was uploaded by mistake. Since we had a read-only mode, we couldn’t delete, so you found it.

So, finally, we reproduced the issue. The “+” in the filename is appearing whenever the video file is recorded on a mobile phone. Those videos that are made on a laptop, encoding with %20. Now we are investigating this in order to find a solution. I do let you know when I receive the info from the dev team. Thanks for understanding and patience :pray:

Best, Julia.

@Julia, thanks for the quick reply. Look forward to getting things working.

I’m not sure the pattern is as you describe. I made a this video on my Win 10 laptop. It is saved with + in the name so I suspect the issue isn’t as simple as laptop = %20 and mobile = +

@tjc4, we are working on this. So, we need to solve two issues. First one is - to find out why the GUI is not working for you. And the second - to fix that all the files with spaces will be saved as correctly in any case. Please bear with us while we’re checking. Thanks for the patience and understanding :pray:

Best, Julia.