Skip to main content
Only available on the Enterprise planThis feature is only available on the Enterprise plan. Review our plans and pricing or sign up for our free expert-led trial today.
An upload portal lets people outside your organization upload files to one path in one of your storage buckets. You share a link, a contributor drags files onto a web page, and the files are stored in your bucket. Contributors don’t need an Edge Impulse account. Use it to collect data from a test site, a clinical partner, or a customer without handing out credentials to your storage or receiving a zip file by email.

What a portal does and does not allow

  • Uploads go straight into your bucket, which can be in your own cloud account or on-premise, so the data never has to live anywhere you do not control.
  • The link is the credential. A portal URL contains an authentication token, and anyone holding it can upload. Treat it like a password, and rotate the token when the engagement ends or the link leaks. Rotating invalidates the old link immediately.
  • Contributors can’t download files. The portal token allows uploading files and listing what is in the portal path. Downloading requires a JWT token from a member of the organization.
  • Nothing can be deleted through the portal UI. A contributor who uploads the wrong file can’t remove it. To remove a file, use the Delete file from portal API.
  • Uploads are matched by content hash. An identical file is skipped on re-upload, so you can safely retry an interrupted batch. A same-named file with different content overwrites the existing one, so a correction can be re-sent under its original name.

Configuring a storage bucket

Data is stored in cloud storage. For details on how to connect a cloud storage provider to Edge Impulse, refer to the Cloud data storage documentation.

Creating an upload portal

With your storage bucket configured you’re ready to set up your first upload portal. In your organization go to Data > Upload portals and choose Create new upload portal. Here, select a name, a description, the storage bucket, and a path in the storage bucket.
Create upload portal form with storage bucket and portal settings

Creating an upload portal

After your portal is created a link is shown. This link contains an authentication token, and can be shared directly with the third party.
Active upload portal page with upload link and portal status

An active upload portal

Click the link to open the portal. If you ever forget the link: no worries. Click the ⋮ next to your portal, and choose View portal.

Uploading data to the portal

Upload portal file browser showing two submitted folders

An upload portal with two folders.

To upload data, drag and drop files or folders onto the drop zone on the right, or use Create new folder to lay out a folder structure first. There is no limit on the number of files.
Before contributors start uploading, tell them which folder structure to use. Labels can be taken from folder names when you import the data, so if contributors use different structures, you’ll need to reorganize the files first, either by hand or with a transformation block in a data pipeline.

Using a portal in transformation blocks and clinical pipelines

If you want to process data in a portal as part of a Clinical Pipeline you can either:
  1. Mount the portal directly into a transformation block via Custom blocks > Transformation blocks > Edit block, and select the portal under mount points.
  2. Mount the bucket that the portal is in, as a transformation block. This will also give you access to all other data in the bucket, which is helpful for syncing other data (see Synchronizing clinical data).

Adding the data to your project

If the data in your portal is already in a format the ingestion service accepts, you can import it straight into a project. In your project, go to Data sources, select Upload portal, and follow the wizard. Because a data source runs on a schedule, this turns the portal into a continuous feed: a contributor uploads, and the next pipeline run pulls the new files into the project and can retrain on them.
Data source setup screen with upload portal selected as the import method

Data Sources - Upload portal method

API reference

Programmatic access to portals

Portals have their own endpoints, separate from the organization endpoints used to manage portals, and authenticate with the portal token rather than an organization key. Uploading takes two steps: you ask Edge Impulse for a pre-signed link, then upload the file to that link directly. The file goes straight to your bucket without passing through Edge Impulse. The script below shows the whole flow. Uploading and listing need only the portal token; downloading also needs a JWT token. Without one, the script only uploads and lists files.
And here’s a script to generate JWT tokens:

Additional resources

Any questions, or interested in the enterprise version of Edge Impulse? Contact us for more information.