Wasabi Hot Cloud Storage is enterprise-class, tier-free, instantly available storage and allows you to store an infinite amount of data affordably. Upload & manage files with your Wasabi account.
Prerequisites
You must have an account with Wasabi to interact with the API. Create your account at: https://wasabi.com/
Tutorial
How to setup
Visit wasabi.com to sign up for their service, you will get an email with link to your console. In your Wasabi console go to Billing->Payment settings then add your Payment method. While you do receive a month free trial to upload private files, a paid account is required to upload public files.
Next, go to the Access Keys page & create a new access key.
Insert the access key/secret from the plugins tab.
Add the element 'Wasabi S3' on your page and configure any other preferences for uploading.β
Plugin Fields, Events, Actions, and States
Plugin contains 3 elements, 14 actions, and 1 API Call.
Wasabi S3
The main element of the plugin. Allow uploading and other interactions with Wasabi.
Fields
Access Key - the access key that is in the downloaded file.
Secret Key - the access key that is in the downloaded file.
Session token - is particularly used in situations where temporary authentication is needed, such as when an application needs to access AWS resources on behalf of the user but does not want to share the user's permanent credentials. In this case, the session token can be generated through an authentication and authorization process and then used to perform operations on AWS resources for a certain period of time.
Using the session token can contribute to the security of applications because it allows for limiting privileges and access duration for AWS resources, minimizing exposure of users' or applications' permanent credentials (get the temporary keys once using the "Create Temporary Credentials" action).
SSE key - (optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use "Create SSE-C Key" action to create the key.
Type - Set this to 'File (Wasabi)'.
Type - Set this to 'Uploaded File (Wasabi)'.
Type - Set this to 'Retrieved File (Wasabi)'.
Private - Using an access token has full control. No one else has access rights, not public. Yes or No
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket Region - The region of where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Folder Structure - The folder structure of where this file should be saved (example: uploads). You can also specify sub-folders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
File Name Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
Input Text - Add text to the input, default Bubble typeface styles will apply. If you would like to style your own input in Bubble, make your element hidden on the page & then use the workflow action to trigger input.
Accept - Specify the file extension(s) (e.g.: .gif, .jpg, .png, .doc) the user can pick from or specify a group of file types like audio/, video/ image/*. Defaults to all if empty. In the case of an extension not validating correctly, you can also use the mime type here.
βΉοΈ
Note: If you specify βimage/heicβ only, the iOS user has to upload image as File instead of Photo. When uploading as a Photo, IOS converts heic to jpg on the phone side before sending it for upload.
Max File Size - Total value for all files in bytes, 1000000 = 1MB (Megabyte) or 5000000000 is 5GB (Gigabytes). Defaults to any size if empty.
Max File Count - Max number of files the user can upload. Defaults to any amount if empty.
Auto Submit - Upload the files instantly to the Wasabi S3 server.
Complete Reset - Reset progress & input when a file or all files have been uploaded successfully.
Compress Images - Select this option to compress the size of image files.
Compression Size - The size for image compression, this value is in KB.
Generate Preview - Output base46 URLs for image files when the 'Read Files' option is selected.
Multiple Files - Allow for uploading multiple files at once.
Read Files - Read the input's files and return Name, Extension, Last Modified, Parameters & Size that will be output into the state 'Files'. If generate previews is selected this will also return a base64 URL for each image file. If complete reset is yes and auto submit is yes files will not be read.
Upload Directory - Allows the user to select 1 folder to upload, all child folders and files will be selected. This option is non-standard, supported by most newer browsers except IE.
Filter File Names - Separate with space & commas between names if not dynamic. Only matched (case-sensitive) names will be uploaded, the matching process happens first before calculating the size file count or reading any other file data. Leave empty to ignore this option.
Rename Files - rename uploaded files or not.
File Names - New names for files.
States
Files - list of uploaded files. Contains info about the file.
Full name
Name with extension
Text
Prefix
Prefix for the file name
Text
Name
Name of file without extension
Text
Type
Mime type of the file
Text
Size
Size in bytes
Number
Extension
Extension of the file
Text
Last Modified
Time when the file was modified.
Date
S3 URL
Full path to the file.
Text
Full Name Encoded
Name with extension with encoded special charts
Text
Name
Name without extension with encoded special charts
Text
Location
Path to file is included folder structure and full name. Can be used for action Generate pre sign URL
Text
Files Count - Return a number of uploaded files.
File Size Total - Return the total size of uploaded files.
Upload Progress - Upload the progress of files. From 0 to 100.
Last Uploaded Files - List of all uploaded files.
Retrieved Buckets - List of retrieved buckets returned by the action Retrieve Buckets
Retrieved Files - List of retrieved files returned by the action Retrieve Files
Is Ready - return true if the element is ready
Is Dragged Over - if a file is being dragged over a valid drop target return true else return false
Is Mobile - return true if the user device is mobile, else return false
Is Reading Files - while files are reading return true else return false
Is Uploading - if the element now upload files to Wasabi return true else return false
Error - return the text of the error
Is Compressing Images - if the element now compress images return true else return false
Is Retrieving Files - if element now retrieve files return true else return false
Is Deleting Files - if element now delete files return true else return false
Chosen Files Count - Return number of chosen files.
Actions
Trigger Input - emulate click on input and show file dialog.
Upload - Start uploading files to Wasabi.
Fields:
Redefine Fields - Selecting yes will use the fields on this action to upload as opposed to the element's fields. To use this option make sure the bucket name and region have value.
Private - Using access token has full control. No one else has access rights, not the public.
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket Region - The region where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Folder Structure - The folder structure of where this file should be saved (example: uploads). You can also specify sub-folders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
File Name Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
Rename Files - rename uploaded files or not.
File Names - New names for uploaded files.
SSE key - (optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use "Create SSE-C Key" action to create the key.
Redefine fields - used to reassign the data that was specified in the plugin element. The plugin element has the same fields as the action. Thus, you can use data either from a plugin element or from a given action.
Reset File Uploader - Remove all files from this element. Reset states: Files (to the empty list ), Files Count (to 0), File Size Total (to 0), Upload Progress (to 0), Is Uploading (to false), Is Reading Files (to false).
Download File - download a file from Wasabi.
Fields:
Bucket Name - The name of the Bucket where the file is stored.
Bucket Region - The region where this file's Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
File Location - The location of the file you would like to download For example: user1/uploads/hello.txt
Download Name - The name you would like to give to this file. Leave empty to use the original file name.
SSE key- (optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use Create SSE-C Key action to create the key.
β
Note: Plugin functionality doesnβt provide an option to display download progress as it has no access to such data (tracking current load). The download process depends on many factors that the plugin canβt consider (network bandwidth, device capability, file size, etc).
Create Bucket - create a new bucket.
Fields:
Bucket Name - Must be unique, valid DNS name, 63 characters or less. Case sensitive.
Bucket Region - Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Delete Bucket - delete bucket.
Fields:
Bucket Name - The name of the Bucket you would like to delete. Case sensitive.
Bucket Region - The region of this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
You can't delete a bucket with files.
Retrieve Buckets - retrieve a list with all buckets from your Wasabi.
Reset Retrieved Buckets - set value of state Retrieved Buckets to empty list.
Retrieve Files - retrieve all files from the selected bucket.
Fields:
Bucket Name - The name of the Bucket you want to look up. Case sensitive.
Bucket Region - The region where the Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Location - Location for the files you want to retrieve, for example uid/images/. Make sure "/" is a trailing folder name with no extra spaces, case sensitive. Leave empty to list all files from Bucket.
Reset Retrieved Files - set value of state Retrieved Files to an empty list.
Delete Files/Folders - Delete files and folders from the selected bucket
Fields:
Bucket Name - The name of the Bucket that holds these files and folders. Case sensitive.
Bucket Region - The region of the Bucket that holds these files and folders. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Location/s - Location of files or folders, if not dynamic list then separated by comma and space (file1.png, uid/images/, uid/images/file2.png). For folders make sure "/" is trailing with no extra spaces, case sensitive. Use the Delete Bucket action to delete all files.
Remove File From Input - remove the file from the element.
Fields:
File - The file you would like to remove.
Add Files To Input - through the popup, allows adding new files from the device to the S3 element.
Cancel Upload - cancel current files uploading
Fields:
Reset after - yes or no
Upload Base64 - upload base64 encoded file to Wasabi.
Fields:
Redefine Fields - Selecting yes will use the fields on this action to upload as opposed to the element's fields. To use this option make sure the bucket name and region have value.
Private - Using access token has full control. No one else has access rights, not the public.
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket Region - The region where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Folder Structure - The folder structure of where this file should be saved (example: uploads) . You can also specify subfolders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
File Name Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
File Name - Name for this file.
Data URL - Base64 encoded data URL.
SSE key - (optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use Create SSE-C Key action to create the key.
Create a folder
Fields:
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket Region - The region where this Bucket is stored.
Folder - name for the new folder,
Upload File To Wasabi From Another Cloud
This action allows uploading files from another cloud to Wasabi bucket by simply entering the file's URL.
Fields:
Private - Using access token has full control. No one else has access rights, not the public.
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Folder Structure - The folder structure of where this file should be saved (example: uploads). You can also specify sub-folders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
File Name Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
File Names - New names for uploaded files.
URL - Link to the uploaded file from another cloud
SSE key - (optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use "Create SSE-C Key" action to create the key.
Progress Bar
Display graphically uploading status.
Fields
Percentage - current percent of upload. Can be numbers from 0 to 100
Background Color - The background color of the bar
Progress Color - Color of the progress banner Radius - Radius of the background bar
Outer Radius - Radius of the progress bar
Data Size
Convert bytes to a more readable value.β
Fields
Bytes - Bytes to evaluate.
Decimal - Round to decimal place.
Explain - Explains the size abbreviation in brackets.
Actions
Generate Presigned URL
All objects in your bucket, by default, are private. These objects are only accessible by the object ownerβs permission.
However, there might be instances where the object owner might have to share these objects with others by creating a pre-signed URL, using their own security credentials, for a specific duration of time to download the objects.
Fields
Bucket Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket Region - The region where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Filename with path - Full path to the file with the filename. Example: "path/to/file/filename.png"
Timeslot - Timeslot to use for expiration time.
β
Note: If "Hours" is selected then expires time expected in hours.
Expires Time - The time to expire the pre-signed URL operation in.
β
Note: The maximum value of expiration time is 7 days.
Create Temporary Credentials
The "Create Temporary Credentials" function in AWS (Amazon Web Services) allows the generation of temporary access keys and a security token using the AWS Security Token Service (STS). These temporary keys can be used for authentication and authorization requests to other AWS services, as well as for accessing AWS resources.
This function is useful in several scenarios, including:βTemporary authenticationβ, βAccess delegationβ, βAccess controlβ, βImproved securityβ.
Essentially, the "Create Temporary Credentials" function provides a flexible and secure mechanism for managing access to AWS resources in distributed environments with complex security requirements and access control needs.
Duration Seconds - DurationSeconds is a parameter to specify how long the temporary keys created will be valid. Minimum value: 900 seconds (15 minutes), Maximum value: 3600 seconds (1 hour).
Return: Access Key Id, Secret Access Key, Session Token, Expiration
Upload File To Wasabi From Another Cloud
This API Call allows uploading files to your Wasabi Cloud Storage from another cloud storage (for example all uploaded in base files are saved to AWS S3 and you have a URL of them ).
For an API call to work, you need to enter Wasabi Access Key and Secret Key.
β
This API Call is in BETA mode. Max upload file size = 300MB. If you try to upload files with a larger size, it may respond with an error text message.
Fields
Private - Using an access token has full control. No one else has access rights, not public. false or true.
Bucket_Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket_Region - The region where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Folder_Structure - The folder structure of where this file should be saved (example: uploads). You can also specify subfolders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
Filename_Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
Filename - File name to save on Wasabi S3 with extension (.png, .mp3, etc.)
URL_From_Another_Cloud - URL of the fileβ.
Response
Return text contains the URL of the file from the wasabi cloud or an error message.
Upload File To Wasabi From Another Cloud with SSE
The same API call as Upload File To Wasabi From Another Cloud but with field SSE
This API Call allows uploading files to your Wasabi Cloud Storage from another cloud storage with Wasabi Server Side encription.
For an API call to work, you need to enter Wasabi Access Key, Secret Key and sse_key.
β
This API Call is in BETA mode. Max upload file size = 300MB. If you try to upload files with a larger size, it may respond with an error text message.
Fields
Private - Using an access token has full control. No one else has access rights, not public. false or true.
Bucket_Name - The name of the Bucket you would like to upload to. Case sensitive.
Bucket_Region - The region where this Bucket is stored. Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
Folder_Structure - The folder structure of where this file should be saved (example: uploads). You can also specify subfolders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
Filename_Prefix - Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
Filename - File name to save on Wasabi S3 with extension (.png, .mp3, etc.)
URL_From_Another_Cloud - URL of the file.
Response
Return text contains the URL of the file from the wasabi cloud or an error message.
Create SSE-C Key
This actions generates a random base64-encoded encryption key for Wasabi to use to encrypt or decrypt your data.
Run the action and save the result to a state or to a database to use it later in others actions. You will need only βSSE Customer Keyβ state in the plugins actions.
β
NOTE: Wasabi does not store the encryption key you provide. If you lose the encryption key, any GET request for an object without its encryption key fails, and you lose the object.
Create Bucket - server side action
Fields:
Bucket Name - Must be unique, valid DNS name, 63 characters or less. Case sensitive.
Bucket Region - Enter one of the following: us-west-1, eu-central-1, us-east-1, us-east-2.
1. Restrict access to the bucket (allows access only to application visitors).
By default, public use of a bucket, folder, or file is allowed only by certain paid (not trial) accounts. If your account does not have access to this feature, contact Wasabi Support atΒ support@wasabi.comΒ for assistance.
β
Restricting access to a specific HTTP referrer
Suppose that you have a website with a domain name (www.example.com or example.com) with links to photos and videos stored in your Wasabi bucket, YOUR_WEB_SITE_FULL_URL. By default, all the Wasabi resources are private, so only the account that created the resources can access them.
To allow read access to these objects from your website, you can add a bucket policy that allows permission with a condition, that the get request must originate from specific web pages.
2. Restrict access to the bucket (deny access to all except the application visitors).
You can make your files private only for those who are trying to access them through a Bubble app. In your WASABI account, open your list of buckets and select the one you want to protect.
Click in Settings.
By default, public use of a bucket, folder, or file is allowed only by certain paid (not trial) accounts. If your account does not have access to this feature, contact Wasabi Support atΒ support@wasabi.comΒ for assistance.
When all this is set up, your files will be only accessible through
Your Bubble app
WASABI Console
Even if you copy and paste the file URL in your browser, it will not work. It will only work if the click comes from your app or from Wasabi console.
Quick setup
Place element on the page
Setup your element
β
To correctly configure the fields named Type read the documentation attached to them.
Choose restrictions for uploading files
Change bucket
Customize the file type perceived by the element
β
A filename extension, file extension, or file type is an identifier specified as a suffix to the name of a computer file. The extension indicates a characteristic of the file contents or its intended use.
More Information...
Example of Extensions:
.jpg - JPEG has been the most widely used image compression standard in the world.
.psd - Photoshop Document (PSD) is a raster format for storing graphic information using lossless compression, created specifically for Adobe Photoshop and supporting all its capabilities.
.pdf - Portable Document Format (PDF) is a file format developed by Adobe in 1993 to present documents, including text formatting and images, in a manner independent of application software, hardware, and operating systems.
etc.
Groups of file types:
audio/* -any audio file.
video/* -any video file.
image/* -any image file.
You can allow Auto Submit (Auto upload files to Wasabi after selection) and skip the next steps.
βIf you do not want the files to be automatically loaded, you need to set up an action for this action.
Check if Auto Submit is disabled ("no")
Add a button or other element to trigger the action
And setup workflow
If Redefine Fields is "no" - workflow setup is finished.
β
You have the option to change the trash can by reconfiguring the upload endpoint in the action. To do this, specify the value of the field "redefined fields" to yes and specify a new bucket.
Object Lifecycle Mangement
The Object Lifecycle Management feature establishes a Lifecycle policy with rules to define actions that you want Wasabi to take during the life of an object.
β οΈ
This feature replaces the need to manually delete an object after a retention period.
Creating a Lifecycle Rule in Dashboard.
The Lifecycle feature is only supported for new buckets. Create a new bucket in order to create and apply lifecycle rules.
ClickΒ CREATE NEW RULE. The Lifecycle Rule Settings panel is displayed.
Enter a name for the Lifecycle rule. For example:
Choose the scope of the rule. You can:β Limit the scope of the rule by using filters.Β Continue with Step 6.β Apply the rule to all objects in the bucket.Β Skip to Step 7.
Filter options are provided when you choose to limit the scope of the rule. You can filter by a name prefix and/or the size of the object.
For size, you can enter the minimum and/or maximum size in bytes, kilobytes, megabytes, or gigabytes.
Check at least one of the Action options. Follow the on-screen instructions for the selected option(s), as described inΒ Lifecycle Rule ActionsΒ below.
ClickΒ CREATE.
A rule list is displayed. Each rule is shown with its name, status, scope, and action information.
Troubleshooting
If you need to create a folder or file with diacritic you need to use text formatted as URL Encoded:
Workflow example
How to use the Pre-signed URL
A button with the βGet presigned URLβ name is placed on the page.
When this button is clicked will work the following workflow. The presigned URL will be available for 1 minute after generation.
β οΈ
In βFilename with pathβ field should indicate the file path for a private file.
β
The maximum value of expiration time is 7 days.
On the page, the Link element is used to display and open the presigned URL. The custom state from the above workflow is used here.
β οΈ
The presigned URL is available for opening just from the page where this was generated. You canβt copy and paste the presigned URL into another browser tab.
New Beta Element and Actions π
Wasabi Cloud Storage (BETA)
Wasabi S3(BETA)
Improved security and support for large file upload
Fields
Title
Description
Type
Bucket Name
The name of the Bucket you would like to upload to. Case sensitive.
text
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
text
Type
Set this to 'File (Wasabi)'
Dropdown
Type
Set this to 'Uploaded File (Wasabi)
Dropdown
Type
Set this to 'Deleted File (Wasabi)
Dropdown
Folder Structure
The folder structure of where this file should be saved (example: uploads). You can also specify sub-folders (eg: uploads/images). As a suggestion, you could save the folder as the current user/thing's unique id.
text
File Name Prefix
Prefix for the file name. Some special characters (for example: !$#@), will not upload correctly.
text
Input Text
Add text to the input, default Bubble typeface styles will apply. If you would like to style your own input in Bubble, make your element hidden on the page & then use the workflow action to trigger input.
text
Accept
Specify the file extension(s) (e.g.: .gif, .jpg, .png, .doc) the user can pick from or specify a group of file types like audio/, video/ image/*. Defaults to all if empty. In the case of an extension not validating correctly, you can also use the mime type here.
text
Max File Size
Total value for all files in bytes, 1000000 = 1MB (Megabyte) or 5000000000 is 5GB (Gigabytes). Defaults to any size if empty.
number
Max File Count
Max number of files the user can upload. Defaults to any amount if empty.
number
Complete Reset
Reset progress & input when a file or all files have been uploaded successfully.
yes/no
Compress Images
Select this option to compress the size of image files.
yes/no
Compression Size
The size for image compression, this value is in KB.
number
Generate Preview
Output Base64 URLs for image files
yes/no
Multiple Files
Allow for uploading multiple files at once.
yes/no
Upload Directory
Allows the user to select 1 folder to upload, all child folders and files will be selected. This option is non-standard, supported by most newer browsers except IE.
yes/no
Filter File Names
Separate with space & commas between names if not dynamic. Only matched (case-sensitive) names will be uploaded, the matching process happens first before calculating the size file count or reading any other file data. Leave empty to ignore this option.
text
Rename Files
rename uploaded files or not.
yes/no
File Names
New names for files.
text
Is Private
Determines the access control list (ACL) setting for the uploaded files on the Wasabi storage.When set to yes, the uploaded files are given a "private" ACL. When no the files are given a "public-read" ACL. Defaults to yes
yes/no
SSE Cusomer Key
Used for server-side encryption (SSE) with customer-provided keys. If set, it indicates that the user has provided a custom encryption key for securing the uploaded files on the server side.
text(optional)
SSE Customer key MD5
The MD5 hash of the customer-provided encryption key. It's used as an integrity check for the encryption key.
text(optional)
File Selection Mode
Determines how new file selections are handled in the Wasabi S3 uploader. This property offers two modes:
"Reset": In this mode, each new file selection replaces the previously selected files. When users select new files, the existing file list is cleared, and only the newly selected files are added.
"Append": This mode allows users to add new files to the existing selection. Each new file selection is added to the current list of files without removing the previously selected ones.
Dropdown
βΉοΈ
Note: If you specify βimage/heicβ only in the Accept field, the iOS user has to upload an image as File instead of Photo. When uploading as a Photo, IOS converts heic to jpg on the phone side before sending it for upload.
Element states
Title
Description
Type
Files
Please see the table below for a detailed description
Object(list)
Files Count
Return a number of uploaded files.
Number
File Size Total
Return the total size of uploaded files.
Number
Upload Progress
Upload progress of files. From 0 to 100.
Number
Last Uploaded Files
List of all uploaded files(file info has the same structure as in Files state)
Object(list)
Is Ready
Returns true if the element is ready
yes/no
Is Dragged Over
If a file is being dragged over a valid drop target return true else return false
yes/no
Is Mobile
Returns true if the user device is mobile, else return false
yes/no
Is Reading Files
While files are reading return true else return false
yes/no
Is Uploading
If the element now uploads files to Wasabi return true else return false
yes/no
Error
Returns the text of the error
Text
Is Compressing Images
If the element now compresses images return true else return false
yes/no
Is Deleting Files
If element now deletes files return true else return false
yes/no
Chosen Files Count
Returns the number of chosen files.
Number
Logs
Captures and records important events and messages during the file upload process
Text
Parts
stores information about individual chunks or segments of a file during multipart uploads. It contains an array of objects, each representing a successfully uploaded part with its part number and ETag. This state is crucial for large file uploads, allowing the system to track the progress of multipart uploads and ultimately complete the upload process by assembling these parts on the server side.
Text
Deleted Files
List of deleted files, file info has the same structure as in Files state
Object(list)
Failed Deletions
List of files failed to delete
Object(list)
Files - list of files added to input. Contains info about the file.
Full name
Name with extension
Text
Prefix
Prefix for the file name
Text
Name
Name of file without extension
Text
Type
Mime type of the file
Text
Size
Size in bytes
Number
Extension
Extension of the file
Text
Last Modified
Time when the file was modified.
Date
S3 URL
Full path to the file.
Text
Full Name Encoded
Name with extension with encoded special charts
Text
Name
Name without extension with encoded special charts
Text
Location
Path to file is included folder structure and full name. Can be used for action Generate pre-sign URL
Text
Events
Title
Description
File Upload Started
Triggered when the file upload process begins.
File Upload Successful
Triggered when all files have been successfully uploaded.
File Uploader Reset
Triggered when the file uploader is fully reset.
Error Uploading File
Triggered when an error occurs during the upload process.
File/Folder Deleted Successfully
Triggered when at least one file is successfully deleted.
Error Deleting File/Folder
Triggered in three scenarios:
a) When the presigned_url property is in an invalid format.
b) When one or more files fail to delete.
c) If there's an overall error in the deletion process.
Error Downloading File
Triggered when there's an error in downloading files. This event is fired in two scenarios:
a) If all file downloads fail.
b) If some, but not all, file downloads fail. In this case, an error state is also published with details about the number of failed downloads.
Upload Cancelled By User
Triggered when the user cancels an ongoing upload.
Upload Cancelled Successfully
Triggered after the upload cancellation process is complete.
Logs
Triggered each time a new log entry is added.
File added
Triggered when new files are successfully added to the upload queue. This event fires after all selected files have been processed and added to the internal file list.
All Parts Uploaded
Triggered when all parts of a multipart upload have been successfully uploaded.
File Download Successful
Triggered when all files have been successfully downloaded. This event is fired if all the presigned URLs result in successful downloads.
Actions
Trigger Input - emulate click on input and show file dialog.
Upload - Start uploading files to Wasabi.
Uploads files to Wasabi using the presigned url generated by the server side action - Create presigned URL
Fields:
Title
Description
Type
Presigned URLs
Presigned URLs generated by Create Presigned url server side action(PUT HTTP method)
Text
Reset File Uploader - Remove all files from this element. Reset states: Files (to the empty list ), Files Count (to 0), File Size Total (to 0), Upload Progress (to 0), Is Uploading (to false), Is Reading Files (to false).
Download File - download a file from Wasabi.
Fields:
Title
Description
Type
Presigned URLs
Presigned URLs generated by Create Presigned url server side action
Text
Download File Name
The name you would like to give to this file. Leave empty to use the original file name.
Text
SSE key
(optional) In order to use Wasabi server side encryption fill-in this field with 256-bit, base64-encoded encryption key. You can use Create SSE-C Key action to create the key.
Text
β
Note: Plugin functionality doesnβt provide an option to display download progress as it has no access to such data (tracking current load). The download process depends on many factors that the plugin canβt consider (network bandwidth, device capability, file size, etc).
Delete Files/Folders - Delete files and folders from the selected bucket
Fields:
Title
Description
Type
Presigned URLs
Presigned URLs generated by Create Presigned URL server side action(Delete HTTP method)
Text
Remove File From Input - remove the file from the element.
Fields:
Title
Description
Type
File
The file you would like to remove.
Text
Cancel Upload - cancel current files uploading
Fields:
Title
Description
Type
Reset after
Reset uploader after the upload ends
yes/no
Actions
Create Presigned URL(BETA)
This action generates pre-signed URLs for S3-compatible storage operations (Wasabi in this case). It supports GET, PUT, and DELETE operations for single or multiple files. The function can use either permanent or temporary credentials and optionally enables server-side encryption. It allows customization of URL expiration time and handles various input formats. The function returns an array of presigned URLs, each corresponding to a file specified in the input, enabling secure, time-limited access to S3 objects without requiring AWS credentials to be shared with the client.
Fields
Title
Description
Type
Bucket name
The name of the Wasabi bucket where the object(s) are stored.
Text
Bucket Region
The region where this Bucket is stored. Please check all available regions here
Text
Object Key
The key (path) of the file(s) in the bucket. Can be a single file or multiple files separated by commas.
Text
HTTP method
The HTTP method for which to generate the pre-signed URL (GET, PUT, or DELETE).
Dropdown
Expiration Time
The duration for which the pre-signed URL will be valid.
Number
Timeslot
The unit of time for the expiration (Days, Hours, Minutes or Seconds).
Dropdown
Use Temporary Credentials
Flag indicating whether to use temporary credentials.
Checkbox
Access Key
The access key ID for temporary credentials (if used).
Text
Secret Key
The secret access key for temporary credentials (if used).
Text
Token
The session token for temporary credentials (if used).
Text
Use SSE
Flag indicating whether to use server-side encryption.
Checkbox
β
Note: The maximum value of expiration time is 7 days.
The action returns an object with a single property:
presignedUrls: An array of strings, where each string is a pre-signed URL for an S3 object.
The length of the presignedUrls array corresponds to the number of object keys provided in the objectKey input property. If a single object key is provided, the array will contain one URL. If multiple object keys were provided (comma-separated), the array will contain a URL for each key.
Each pre-signed URL in the array:
Allows the specified HTTP method (GET, PUT, or DELETE) on the corresponding S3 object.
Is valid for the duration specified by the expirationTime and time_var inputs.
Includes necessary parameters for server-side encryption if use_sse is true.
These URLs can be used to perform the specified operation on the S3 objects without requiring additional authentication, as long as they are used before expiration.
Create Temporary Credentials(BETA)
The "Create Temporary Credentials" function in AWS (Amazon Web Services) allows the generation of temporary access keys and a security token using the AWS Security Token Service (STS). These temporary keys can be used for authentication and authorization requests to other AWS services, as well as for accessing AWS resources.
This function is useful in several scenarios, including:β Temporary authenticationβ, βAccess delegationβ, βAccess controlβ, and βImproved securityβ.
Essentially, the "Create Temporary Credentials" function provides a flexible and secure mechanism for managing access to AWS resources in distributed environments with complex security requirements and access control needs.
Fields:
Title
Description
Type
Duration Seconds
DurationSeconds is a parameter to specify how long the temporary keys created will be valid. Minimum value: 900 seconds (15 minutes), Maximum value: 3600 seconds (1 hour).
This action generates a random base64-encoded encryption key for Wasabi to use to encrypt or decrypt your data.
Run the action and save the result to a state or to a database to use it later in others actions. You will need only the βSSE Customer Keyβ state in the plugin's actions.
β
NOTE: Wasabi does not store the encryption key you provide. If you lose the encryption key, any GET request for an object without its encryption key fails, and you lose the object.
Create Bucket(BETA)
Fields:
Title
Description
Type
Bucket name
Must be unique, valid DNS name, 63 characters or less. Case sensitive.
Text
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
Text
Retrieve Files(BETA)
This action lists objects in a specified Wasabi bucket and location, returning detailed information about each object.
Fields
Title
Description
Type
Bucket name
The name of the Wasabi bucket where the object(s) are stored.
Text
Bucket Region
The region where this Bucket is stored. Please check all available regions here
Text
Location
Location for the files you want to retrieve, for example: uid/images/. Make sure "/" is a trailing folder name with no extra spaces, case sensitive. Leave empty to list all files from Bucket.
Text
Data Type To Return
Should be Retrieved File (Wasabi)
Text
Filter Empty Folders
Whether to exclude empty folders from the results.
Checkbox
Returned Value:
The function returns an object with the following properties:
status (string): Either "success" or "fail", indicating the outcome of the operation.
files (array of objects): An array containing information about each file in the specified location. Each object in the array has the following properties:
_p_Location (string): The full path of the object in the bucket.
_p_Full Name (string): The full name of the file, including extension.
_p_Name (string): The name of the file without extension.
_p_Type (string|null): The MIME type of the file, or null if not determined.
_p_Parameters (string|null): Any query parameters in the object key.
_p_Size (number): The size of the object in bytes.
_p_Extension (string|null): The file extension, or null if none.
_p_Last Modified (string): The last modification date of the object.
_p_S3 URL (string): The complete URL to access the object in S3.
_p_Storage Class (string): The storage class of the object in S3.
_p_Full Name Encoded (string): URL-encoded full name of the file.
_p_Name Encoded (string): URL-encoded name of the file without extension.
error (string): An error message if the operation failed, empty string otherwise.
Delete files/folders(BETA)
This action deletes objects from specified locations in an S3 bucket. It can handle multiple locations and will delete all objects within each specified location.
Title
Description
Type
Bucket name
The name of the Wasabi bucket where the object(s) are stored.
Text
Bucket Region
The region where this Bucket is stored. Please check all available regions here
Text
Location
Location of files or folders, if not dynamic list then separated by comma and space (file1.png, uid/images/, uid/images/file2.png). For folders make sure "/" is trailing with no extra spaces, case sensitive. Use the Delete Bucket action to delete all files.
Text
Returned Value:
The action returns an object with the following properties:
deleted (array of strings): An array containing the locations from which objects were successfully deleted.
error (string): An error message if an operation failed, or an empty string if all operations were successful.
7. Delete bucket(BETA)
deletes a bucket from Wasabi
Title
Description
Type
Bucket name
The name of the Wasabi bucket to be deleted
Text
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
Text
Returned object:
The action returns an object with two properties:
status: Either "success" or "fail", indicating the outcome of the operation.
error: An empty string if successful, or the error message if the operation failed.
Initiate Multipart Upload(BETA)
Initiates large file uploads to Wasabi buckets and gets pre-signed URLs for client-side uploading of individual parts. This approach is particularly useful for large files that need to be uploaded in parts(files bigger than 5Gb).
Title
Description
Type
Bucket name
The name of the Wasabi bucket
Text
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
Text
Object Key
The key (path/filename) for the object to be uploaded.
Text
File Size
The total size of the file to be uploaded.
Number
Is Pivate
Whether the uploaded object should be private or public.
Checkbox
Returned object:
The action returns an object with two properties:
UploadId: The ID of the initiated multipart upload.
presignedUrls: A list of pre-signed URLs for each part of the multipart upload.
Complete Multipart Upload(BETA)
Completes a multipart upload to a Wasabi bucket
Title
Description
Type
Bucket name
The name of the Wasabi bucket
Text
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
Text
Object Key
The key (path/filename) for the object to be uploaded.
Text
Upload ID
The ID of the multipart upload to be completed.
text
Parts
A JSON string containing information about the uploaded parts
text
Is Private
Whether the uploaded object should be private or public.
Checkbox
Returned object:
The action returns an object with one property:
log: A string containing detailed logs of the function's execution, including any errors encountered.
Retrieve Buckets(BETA)
Lists all buckets in a Wasabi account
Title
Description
Type
Bucket Region
The region of where this Bucket is stored. Please check all available regions here
Text
Returned object:
The action returns an object with three properties:
status: Either "success" or "fail", indicating the outcome of the operation.
buckets: An array of bucket names if successful, or an empty array if failed.
error: An empty string if successful, or the error message if the operation failed.
Create folder(BETA)
Creates a folder (technically, a zero-byte object with a key ending in "/") in a Wasabi bucket.
Title
Description
Type
Bucket name
The name of the Wasabi bucket
Text
Bucket Region
The region where this Bucket is stored. Please check all available regions here
Text
Folder Name
The name of the folder to be created.
Text
Returned object:
The action returns an object with two or three properties:
success: A boolean indicating whether the operation was successful.
message: A string describing the result of the operation.
error: (Only present if success is false) A string containing the error message.
Workflow examples
Simple upload workflow example( single part, file less than 5Gb in size)
Place the Wasabi element on the page and fill the desired settings
To set up auto upload use the File added event
Add Create pre-signed URL action to the workflow and fill the necessary fields ( HTTP method for upload should be PUT)
Next, use the Upload action (pre-signed URLs should be the result of 1st step - Create pre-signed URLs
Multipart upload workflow example( file more than 5Gb in size)
Place the Wasabi element on the page and fill the desired settings
To set up auto upload use the File added event
Add Initiate Multipart Upload action to the workflow
Save the Upload ID and the file location to a custom state
Next, use the Upload action (the pre-signed URLs should be the result of step one - Initiate Multipart Upload)
To complete a multipart upload you have to use another event - All parts uploaded
Add Complete Multipart upload action to the workflow, use the saved custom states for the Object Key and Upload ID, and the Parts returned state