pipedream
pipedream copied to clipboard
[FEATURE] Improve the AWS S3 upload action to not require base64-encoding the data
AWS S3 should support uploading a string as content directly, instead of base64-encoding the data. We should revisit this action to simplify the upload for users. It would make sense to look at other platforms to see how they expose this interface via UI action.
@dylburger a File Upload button would be a good prop for this action, and also to many others (like email attachments). I think we can't accept a string because binary data can't be represented directly as a string, only through formats like Base64.
But there is also another action - S3 Stream File - which accepts an URL.
Note: Zapier and Make also accept a base64 string.
Let me know your thoughts about this.
@andrewjschuang That makes sense. Thanks for the detail.
How would you envision the file upload prop working? Should we support one of 1) base64-encoded string or 2) a reference to a file on the /tmp? That is, I could provide data in many different formats, depending on how it arrives, but only one data prop is required.
@andrewjschuang That makes sense. Thanks for the detail.
How would you envision the file upload prop working? Should we support one of 1) base64-encoded string or 2) a reference to a file on the /tmp? That is, I could provide data in many different formats, depending on how it arrives, but only one data prop is required.
@dylburger I just tested the Attachments part in a Workflow Settings and it worked perfectly. A prop like that would be awesome, uploading it to /tmp and referencing the path. Then the action would convert it to base64 and upload it.
I can change the label/description to instruct the user to do all of that manually, but with a prop everything would be automatic.
The user will typically be uploading a file from runtime vs. an attachment. Do you think you could write a prop that accepts a path to a file on /tmp? Or a URL to the file? Maybe we should have individual actions for each kind of input (base64-encoded, file, and URL) for the three use cases?
The user will typically be uploading a file from runtime vs. an attachment. Do you think you could write a prop that accepts a path to a file on
/tmp? Or a URL to the file? Maybe we should have individual actions for each kind of input (base64-encoded, file, and URL) for the three use cases?
I've created separate actions for the 3 use cases.
Awesome! Thanks