Forum Documentation Showcase Pricing Learn more

Easy File Downloader - New Plugin From Zeroqode

#1

We have just published a new plugin
Easy File Downloader - very often we need to allow users to download certain files. Usually the way to do it in Bubble is to use “navigate to an external URL” workflow action providing the file URL to download. This is a feasible workaround but users see as a new tab is opening in their browser for the moment. Also, if the file to download is an image, audio or pdf then those files will simply open in a new tab without being downloaded. This plugin allows you to implement the file download feature with just one workflow action where you indicate the URL of the file that should be downloaded, be it an image or any other file.

You can also track the progress, by adding element event “when file downloaded”, that fires each time, the file becomes ready for download.

For details, screenshots and demos please visit https://zeroqode.com/plugin/easy-file-downloader-1530097438304x820649115444576300

Levon Terteryan
Founder @ Zeroqode & Bubblewits

zeroqode-for-web-160x120

Bubble Templates
Bubble Plugins
Bubble Courses
Convert Web to iOS & Android
No-code Development Services

2 Likes
#2

@levon is this specific to files stored within Bubbles own aws or can it apply externally hosted files? the reason being is that usually mousing over a link to download exposes the URL of the intended file…these do not. thanks

#3

hey Tim, this plugin can be used with any files both hosted within Bubble and external.

2 Likes
#4

HI levon, thank you for the quick reply

#5

Better with a demo gif:

#6

I seem to be receiving the following error;

The plugin Easy File Downloader / element File Downloader threw the following error: TypeError: Cannot redefine property: chunk_inefficient at Function.defineProperty (<anonymous>) at eval (eval at h.create_code (https://dhtiece9044ep.cloudfront.net/package/run_debug_js/f50e139b1551eb4fa2ca9c92c9b32c12df687567ba973169e0110e44823c9aab/xfalse/x5:15:1885377), <anonymous>:3:8) (please report this to the plugin author)


Files don’t seem to download as a result. After running some tests, I realized that the issue has to do with the url format as I recently switched to AWS s3 as a host.

Regular URLs look like this: https://ucarecdn.com/9e8f2525-7c38-4929-aa8c-8423875923/myvideo.mp4

And these URLs have no issues.

However, Amazon S3 signed urls have this format:
https://mysite.s3.amazonaws.com/8d/8327518930275hd/myvideo.mp4?AWSAccessKeyId=23869182hrfijs&Signature=skjdbgiobogaids%uetiubsf%3D&Expires=1547712359

These URLs don’t seem to download.

#7

moreover Amazon S3 Urls are usually saved without https: simply starting with // maybe that’s the case? if so try to append https: to the link

#8

Checked to confirm, and my urls already have https: in the link already. I thought maybe it had to do with the fact that the urls are signed and have a lot of data appended to the link, but I tried it with some other public s3 files that aren’t even in my bucket and the issue still persists. Very strange.

#9

Can you share screenshots of the plugin settings and any associated workflows?
also, did you install the latest plugin version?

#10

The latest update seems to have fixed the issue. Thank you!

#11

Hey @levon,

I was browsing around and I wonder if you can help with a couple of questions I have about the plugin.

Security

We currently have our Members’ Area on a Wordpress website with a membership plugin.

This has a feature that generates self-expiring links to help prevent sharing (“expire X minutes after page load”).

As @Bubbleboy noticed, your plugin preview doesn’t display urls on hover. I can’t find any urls in the page’s html either, but I’m no expert.

What function does the plugin use to get the url for the download?

Are the download urls protected, or is there some way to find them?

Speed & Location of Server

As the download links on our site are hosted in an S3 bucket and accessed through a plugin, I don’t believe we can have Cloudflare or some other dynamic server choice based on the user’s location.

Is it possible to use your plugin (or something else) to achieve this?

We have users from all over the globe and often get support messages saying the connection is slow or is timing out. We’d like to avoid this with Bubble if possible!

Thanks in advance for any help.

Best,

Paul

#12

Hi Paul,
I believe by using Bubble’s privacy settings in the database tab you can restrict access to the files that you want to let your users download only to those users who these files belong to.


please take a look and let me know if you think this could work

#13

Thanks for your reply Levon,

Bubble actually uses Amazon S3 rather than their own servers, right?

If I used this method and a user found the S3 link and shared it, I presume Bubble wouldn’t be able to prevent others accessing the file, as the url would take them directly to S3. Unless it’s simply not possible for a user to discover where the file is coming from with your plugin?

There’s also the speed concern. I don’t know whether I’d be able to distribute the same file across S3 servers at different locations. Or perhaps use Cloudflare or something?

Sorry, bit of a newbie so I’m not sure how this all works.

Thanks again for your help, it’s much appreciated.

Paul

#14

even if user discovers the link i believe Bubble can still control the access rights to it. The best is to experiment though or do some research on this forum

it’d be one location. If you want multiple then you’d need to get dedicated servers from Bubble in different AWS locations which would be quite expensive.

#15

Does this plugin allow for multiple files to be downloaded via one workflow being triggered?

#16

Hello @mesnikweb.

Yes it is possible for multiple files to be downloaded via one workflow. However it may differ from use case to use case.
Check the demo for configuration and testing: https://zeroqode-demo-07.bubbleapps.io/file_downloader
There is a button for multiple downloads.

Regards,
Zeroqode Team.

#17

@levon
Hi, I just bought the plugin. It works like a charm on a normal page, but when putting it into a reusable element, it does not.

When I trigger the download workflow, I get this message in the console: ReferenceError: Can’t find variable: download

I double checked and the configuration is the same than the one on the normal page that runs, and I compared with the demo app provided on the plugin page.

#18

Hi @julienallard1 we’ll check it out. thanks!

#19

Hi @julienallard1 we have just updated the plugin and it should now work with reusable elements as well.
Please upgrade the plugin, refresh the page and give it another try
Thanks!

1 Like
#20

It seems to work flawlessly now. It’s great!
Thank you very much