Uploading files fails with the new components

That seemed to work @victoria ! Thanks for helping me work through this.

Theres one last issue, when uploading without the other metadata, it seems that the access token to the file is missing. In order to access the file I have to "Create new access token":

With the approach that used the ...fileUploadButton.files[0] & "data" it seemed to include the access token.

Looks like there are a few posts on stackoverflow showing how to do this in Node:

Hmm! If you open up the left panel for the file component after you’ve uploaded the pdf, could you take a look at the .files[0] value and the .data value? I don’t believe there are any access tokens included in the file component.

When you submit this upload request from another source, do you have to manually include the access token?

Thanks @victoria . I dont have a .data value but I do have a .value:

Here is the files[0] value. I changed the accepted type to png and jpg/jpeg:
image

Thats a good question. When using the firebase sdk directly, it handles this for you. But with a GCS upload, it appears that this token is not automatically uploaded. It looks like it's possible with a UUID generated token and including it in the upload request here:

Any thoughts on best path forward?

Interesting! :thinking:

There's no token being explicitly passed in from the files or value objects (just the lastModified, name, size, type and binary data), so I'm not sure why that aspect worked with that request and not our current request.

Uploading just the binary data is still working for me and I don't need to explicitly pass in any tokens.

Are you getting any specific error messages?

We're working through the bugs mentioned in this thread and an engineer fixed one yesterday :blush: GCS JSON upload now works!

Let me know if y'all have any questions at all.

Hi @victoria Im late to the party here. But I just had the same issue with a file upload to our custom API. Your workaround {{ {...importFile.files[0], "data": importFile.value[0] } }} fixes this. Since this is now a standing issue for some time: it seems this is not officially documented anywhere [1][2]. This sent me on a 2 hour bug hunt. It would be nice if behaviour like this could be documented outside of support forums.

[1] Perform REST API requests | Retool Docs
[2] File Input | Retool Component Library

@perelin : This should already be much simpler now i.e. passing {{ importFile.value[0] }} should ideally work as noted here. Does that work, and if not, could you share more about your query? Note that you might want to upgrade the uploader component to the newest version where there would no files field in importFile and value has all of the files field context

We're sorry you had to spend 2 hours on this. This is something we deem as a failure mode for our design of the product, so would love to hear any feedback on this i.e. are docs hard to discover or are less detailed than we like, is this hard to intuit in the product (assuming my suggestion works) etc.

1 Like