Hybrid & On-prem
Cloud data overview
Restrict data access by IP range
How to generate signed URLs
How to generate non-expiring signed URLs
Creating your first project
Project setup script
Python API FAQ
Intro to the GraphQL API
Data types overview
Model predictions (legacy)
Legacy vs new editor ontology
Legacy vs new editor JSON exports
Legacy vs new editor hotkeys
July 6, 2020
June 22, 2020
June 2, 2020
May 19, 2020
April 14, 2020
April 1, 2020
March 3, 2020
February 18, 2020
February 5, 2020
January 17, 2020
Table of Contents
High Level Overview
Amazon S3 has a maximum signature expiry of 7 days. In order to upload signed URLs to Labelbox that don’t expire, we recommend proxying URLs through an endpoint on your server.
The exercise below demonstrates how to proxy through a simple flask app. We provided a one-click deploy through Heroku, however, you could also build this simple handler into your existing web service.
Step 1: Deploy a proxy endpoint
This endpoint will accept a signed URL with our JWT secret and will return a new signed s3 URL to an asset.
First, you’ll need to get IAM information to be able to create pre-signed URLs - AWS_ACCESS_KEY_ID - AWS_SECRET_ACCESS_KEY - a bucket name.
Make sure this IAM user can LIST and GET files in the bucket.
Check out the example proxy we made, https://github.com/Labelbox/signed-url-example. You can deploy it with one click here:
Step 2: Generate signed URLs pointing at our proxy
For each asset in our s3 bucket will generate a signed URL with our JWT secret that points to our server endpoint.
From Heroku, get the host URL of your new app by “open app”. Then, get the generated secret (settings > reveal config vars).
git clone https://github.com/Labelbox/generate-tokenized-urls
// confirm you have node.js installed
Then you can upload
labelbox-import.json to Labelbox and you’re good to go.