# \[New Feature\] \[Beta\] Large file uploads

**URL:** <https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395>\
**Category:** Announcements\
**Created:** [April 1, 2020, 5:31pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395 "2020-04-01T17:31:17Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 1, 2020, 5:31pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/1 "2020-04-01T17:31:17Z")

</div>

Hello everyone,

We just launched the public beta of a new feature: Large file uploads. This means that File Upload elements will now accept files of up to 5 GB for upload, rather than the old limit of 50 MB. This is a pretty large behind-the-scenes change, so thanks to all of our closed alpha users for helping us test the feature.

You’ll have noticed that this is a new version of Bubble that you will have to upgrade to in the “Settings” tab of the editor, under “Versions”. The reason this is a potentially breaking change is that we changed how file requests are served: rather than proxying them through our server, we issue a 302 redirect to a pre-signed URL on AWS. For 99% of users, this should not be a problem; however, if you were not properly handling redirects in some code accessing your uploaded files, you should consider checking that before upgrading.

Other Features:

- There is a “Max file size” property on the File Uploader element. This will be verified server-side on upload to make sure users are only uploading what you allow them to. One use case is to calculate it based on the current user’s plan for instance.
- File Uploader elements can be disabled using conditional formatting, and this will also be verified server-side, so you can control who can upload that way.
- There is a new state on File Uploader elements, “upload percentage”, which will be a number from 0-100 representing the percentage of the file that has been uploaded. Since large files can take a while to upload, this number can be used to create custom progress indicators.

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 2, 2020, 3:20pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/2 "2020-04-02T15:20:15Z")

</div>

Made this topic public on April 2, 2020, 3:20pm UTC



---

<div class="post-metadata">

**Author:** ![maryfox20](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/maryfox20/32/51731_2.png) [@maryfox20](https://forum.bubble.io/u/maryfox20)\
**Post date:** [April 2, 2020, 5:22pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/3 "2020-04-02T17:22:51Z")

</div>

For files (including PDFs / Images) that were uploaded in the past (i.e. as group backgrounds or using the document plugin), will I need to take any action before transitioning?

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 2, 2020, 5:25pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/4 "2020-04-02T17:25:20Z")

</div>

Nope! You should only need to take action if you had some special code which was accessing your files, but not handling redirects correctly (which most libraries do automatically).

---

<div class="post-metadata">

**Author:** ![vini\_brito](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/vini_brito/32/22187_2.png) [@vini\_brito](https://forum.bubble.io/u/vini_brito)\
**Post date:** [April 2, 2020, 5:34pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/5 "2020-04-02T17:34:53Z")

</div>

> [@cal](#):
>
> special code

Can we receive a more specific information on this?  
What would a special code actually be?

I’ve dealt with presigned URLs when building into a plugin an AWS client to grab files behind authentication, so I know that simply accessing the URL will give me the image and the auth work happens in the server to generate that URL, but I’m not understanding how could that output an error to us now.

In time: Great update! Now I can use all of my app’s storage with two files 😂

Edit: Would a simple `img.src: url` be affected? I don’t think so, but I rather ask, trying to dimension the changes here.

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 2, 2020, 5:50pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/6 "2020-04-02T17:50:57Z")

</div>

Most ways of requesting files (such as \<image src=""\> or the requests library for nodejs) will automatically handle a 302 redirect to the presigned URL, so 99% of code will be unaffected. It’s only if you wrote / were using specialized code which relied on the file being proxied through our server and was not setup to handle redirects that you would have to change. One example would be if you used this library: [https://github.com/request/request](https://github.com/request/request) and explicitly set followRedirects to false.

In general, it’s abnormal to ignore redirects when issuing GET requests, but some apps may do that, so we err’d on the side of caution and made this a breaking change to give them a chance to update their code.

---

<div class="post-metadata">

**Author:** ![vini\_brito](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/vini_brito/32/22187_2.png) [@vini\_brito](https://forum.bubble.io/u/vini_brito)\
**Post date:** [April 2, 2020, 6:03pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/7 "2020-04-02T18:03:54Z")

</div>

Ah, so you meant code that ignores redirects. Got it.  
indeed most libraries do follow redirects.

Thank you for the clarification!

---

<div class="post-metadata">

**Author:** ![jon2](https://avatars.discourse-cdn.com/v4/letter/j/e47774/32.png) [@jon2](https://forum.bubble.io/u/jon2)\
**Post date:** [April 2, 2020, 7:28pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/8 "2020-04-02T19:28:04Z")

</div>

Great news . Will plugins gain access to the larger limit? I’m guessing that encoding to base64 and calling `context.uploadContent()` isn’t in the cards for this based on what I’m reading. If so is there any documentation for it?

---

<div class="post-metadata">

**Author:** ![levon](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/levon/32/89793_2.png) [@levon](https://forum.bubble.io/u/levon)\
**Post date:** [April 2, 2020, 8:13pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/9 "2020-04-02T20:13:19Z")

</div>

thanks for the update @cal  
and so the limit of file storage is same as indicated on the pricing page? It’s 10 GB? and then it’s $10/month for every additional 10 GB ?

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 2, 2020, 8:15pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/10 "2020-04-02T20:15:29Z")

</div>

We’re planning to expand this upload path to more things in the future (like plugins or the multi file uploader), but for now we wanted to just roll it out with the basic File Uploader element because of how large of an infrastructure change it is behind the scenes.

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 2, 2020, 9:49pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/11 "2020-04-02T21:49:05Z")

</div>

Should be the same. We haven’t updated the pricing.

---

<div class="post-metadata">

**Author:** ![eric3](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/eric3/32/32071_2.png) [@eric3](https://forum.bubble.io/u/eric3)\
**Post date:** [April 2, 2020, 9:55pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/12 "2020-04-02T21:55:47Z")

</div>

This doesn’t change anything about CSV upload limits, correct? @cal

---

<div class="post-metadata">

**Author:** ![jamesbond](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/jamesbond/32/40242_2.png) [@jamesbond](https://forum.bubble.io/u/jamesbond)\
**Post date:** [April 2, 2020, 11:52pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/13 "2020-04-02T23:52:45Z")

</div>

> [@cal](#):
>
> Other Features:
> 
> - There is a “Max file size” property on the File Uploader element. This will be verified server-side on upload to make sure users are only uploading what you allow them to. One use case is to calculate it based on the current user’s plan for instance.

Finally

---

<div class="post-metadata">

**Author:** ![sudsy](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/sudsy/32/114637_2.png) [@sudsy](https://forum.bubble.io/u/sudsy)\
**Post date:** [April 3, 2020, 12:59am UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/14 "2020-04-03T00:59:33Z")

</div>

> [@cal](#):
>
> We’re planning to expand this upload path to more things in the future (like plugins or the multi file uploader)

When you do, please expose a progress (% complete) hook for plug-ins as well. 🙂 (I’m eager to take advantage of that for a custom uploader that I wrote, which uses the existing `context.uploadContent()` function.)

---

<div class="post-metadata">

**Author:** ![simon7](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/simon7/32/46991_2.png) [@simon7](https://forum.bubble.io/u/simon7)\
**Post date:** [April 3, 2020, 8:24am UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/15 "2020-04-03T08:24:43Z")

</div>

@cal  
I have a strange issue. Tested with 3 files, one uploaded under v5 and two uploaded under v6.

With axios (nodejs) set to maxRedirects: 0 (unlimited) i get a 302 for the v5, a 200 for one v6 and 302 for the other v6.

The code is pretty basic and have worked perfectly under v5.

```
const axios = require('axios'); 

let token = 'mytoken'
let fileUrl = 'https://my-app.domaon.com/version-test/fileupload/f12345x54321/file.docx'

async function getFile(){

    const options = {
        responseType: "stream",
        headers: { Authorization: `Bearer ${token}` },
        maxRedirects: 0
    }

    const res = await axios.get(fileUrl, options)
    return res.status
}

getFile().then(console.log)
```

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 3, 2020, 2:31pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/16 "2020-04-03T14:31:17Z")

</div>

@simon7  
We issue redirects based on what version your app is at time of request, not what version it is when you uploaded them. So, if you tested the one uploaded under v5 after upgrading to v6, we will redirect that request.

Also, I think the axios maxRedirects of 0 is actually no redirects, not unlimited (but may sometimes follow redirects anyways: see here [https://github.com/axios/axios/issues/1227](https://github.com/axios/axios/issues/1227)).

If the issue persists / prevents you from being able to upgrade, please submit a bug report or DM me some more information so I can fix the issue! Also, if the v5 behavior is different from what it was before, that is also bad, so please let me know.

---

<div class="post-metadata">

**Author:** ![StevenM](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/stevenm/32/17066_2.png) [@StevenM](https://forum.bubble.io/u/StevenM)\
**Post date:** [April 4, 2020, 12:21am UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/17 "2020-04-04T00:21:45Z")

</div>

Great! All we need now is the option to specify our own s3 buckets in our own AWS regions so we can upload more than 2 x 5gb files before blowing our monthly plans and manage our own app storage and files.

---

<div class="post-metadata">

**Author:** ![simon7](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/simon7/32/46991_2.png) [@simon7](https://forum.bubble.io/u/simon7)\
**Post date:** [April 4, 2020, 11:44am UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/18 "2020-04-04T11:44:09Z")

</div>

Hi @cal ,  
Did some more tests. I probably mixed up the not-working v5 and the working v6 file, so the v5 works as expected but the v6 dont. I did of course try other values than 0 in maxredirects 😉 Those gave a 400. Also tried with node-fetch (incl. redirect: follow, follow: 20 as options).

I will send a bugreport in a bit. I see that I can downgrade for a week, should a revert now or is it better to wait so you can do some testing?

---

<div class="post-metadata">

**Author:** ![miguel](https://avatars.discourse-cdn.com/v4/letter/m/439d5e/32.png) [@miguel](https://forum.bubble.io/u/miguel)\
**Post date:** [April 4, 2020, 4:44pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/19 "2020-04-04T16:44:23Z")

</div>

Hello @cal.

Before upgrading to v6, when I assigned the current anonymous user to a field, the field was empty (`user_field is empty` was “yes”).

Now the field actually has the temporary user (so now, `user_field is empty` is “no”).

Is this new behaviour related to v6?

Thanks.

> [@Anonymous user is not empty anymore?](http://forum.bubble.io/t/anonymous-user-is-not-empty-anymore/84856/2):
>
> Additionally, it seems that when you try to log in, and the log in fails because the email is already in use, it creates a new temporary user.

---

<div class="post-metadata">

**Author:** ![cal](https://sea1.discourse-cdn.com/bubble/user_avatar/forum.bubble.io/cal/32/175045_2.png) [@cal](https://forum.bubble.io/u/cal)\
**Post date:** [April 4, 2020, 5:05pm UTC](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395/20 "2020-04-04T17:05:06Z")

</div>

Thanks for the bug report. If it’s breaking functionality for your app (and your app is live), definitely downgrade for now and wait (you can upgrade/downgrade as much as you want without breaking your application). I will be able to do testing no matter what version your app is on.

[Next page](https://forum.bubble.io/t/new-feature-beta-large-file-uploads/84395.md?page=2)
