Ango Hub Docs
Open Ango HubContact iMerit
  • Ango Hub Documentation
  • Video Guides
  • Changelog
  • FAQs & Troubleshooting
  • All Keyboard and Mouse Shortcuts
  • Core Concepts
    • Assets
    • Attachments
    • Batches
    • Benchmarks
    • Category Schema (Ontologies)
    • Frame Interpolation
    • Geofencing
    • Idle Time Detection & Time Tracking
    • Instructions
    • Issues
      • Issue Error Codes
    • Label Validation
    • Labeler Performance
    • Labeling
    • Labeling Queue
    • Multiple Classification
    • Notifications
    • Organizations
    • Projects
    • Requeuing
    • Reviewing
    • Review Queue
    • Skipping
    • Stage History
    • Tasks
    • Usage
    • User Roles
    • Workflow
      • Complete
      • Consensus
      • Hold
      • Label
      • Logic
      • Plugin
      • Review
      • Start
      • Webhook
  • Labeling
    • Managing Users in Projects
      • Profile Page
    • Managing the Project Ontology
    • Labeling Editor Interface
      • Audio Labeling Editor
      • Image Labeling Editor
      • Video Labeling Editor
      • DICOM Labeling Editor
      • Medical Labeling Editor
        • 3D Bounding Box
        • Fill Between Slices
        • Island Tools
        • Line (Tape Measure)
        • Smoothing
      • PDF Labeling Editor
      • Text (NER) Labeling Editor
      • LLM Chat Labeling Editor
      • Markdown Labeling Editor
      • 3D Multi-Sensor Fusion Labeling Editor
    • Labeling Classes
      • Tools
        • Bounding Box
        • Brush
        • Entity
        • Message
        • Nested Classifications
        • PCT
        • PDF Tool
        • Point
        • Polygon
        • Polyline
        • Rotated Bounding Box
        • Segmentation
        • Spline
        • Voxel Brush
      • Classification
        • Checkbox
        • Multiple Dropdown
        • Radio
        • Rank
        • Single Dropdown
        • Text
        • Tree Dropdown Tools (Single and Multiple Selection)
      • Relation
        • Single Relation
        • Group Relation
    • Magnetic Lasso
    • Performance & Compatibility Considerations
  • Data
    • Data in Ango Hub
      • Embedding Private Bucket Files in MD Assets
    • Importing Assets
      • Asset Builder
      • Bundled Assets
        • Importing Multiple Images as One Multi-Page Asset
        • Importing Multiple Single-Frame DICOM Files as One Multi-Page Asset
        • Importing multiple DICOM files to be annotated and displayed at once
        • Importing Multiple Single-Frame DICOM Files as a DICOM Series
        • Importing Multiple Markdown Files as One Multi-Page Asset
      • File Explorer
      • Supported Asset File Types & Codecs
      • Importing Cloud (Remote) Assets
      • Importing From Local Machine
      • Creating and Importing LLM Chat Assets
      • Importing Data in the 3D Multi-Sensor Fusion Labeling Tool
      • Bulk Importing Markdown/HTML Assets
      • Importing Attachments during Asset Import
      • Importing Annotations during Asset Import
      • contextData: Adding Extra Data to Assets
      • Importing Reference Images as Overlay
      • Importing Reference Medical Data During Asset Import
    • Importing and Exporting Annotations
      • Importing Annotations
        • Ango Import Format
        • Importing Brush Traces
        • Importing NRRD Annotations
      • Exporting Annotations
        • Ango Export Format
          • Asset
            • Task
              • Tools
              • Classifications
              • Relations
          • Stage History
    • Adding and Managing LLMs
    • Storages
      • Set up a storage integration with Azure
      • Set up a storage integration with AWS S3
      • Set up a storage integration with MinIO and S3-compatible custom storage services
      • Set up a storage integration with GCP (Google Cloud Platform)
      • Set up CORS
      • Validating Storage Integrations
    • Purging Data from Ango Hub
  • Plugins
    • Overview of Plugins in Ango Hub
      • Installing Plugins
      • Plugin Setting Presets
      • Monitoring Plugin Progress
    • First-Party Plugins
      • Ango Export Converter Plugins
      • Asset Converter Plugins
      • Ango to Mask Converter
      • Batch Assignment
      • ChatGPT
      • Column-Agnostic Markdown Generator
      • CSV Export for Classification
      • DALL-E
      • DALL-E (Model Plugin)
      • File Explorer Plugin
      • General Object Detector
      • General Object Segmenter
      • Markdown Generator
      • One-Click Segmentation
      • Open World Object Detection
      • Optical Character Recognition
      • TPT Export
      • YOLO | Instance Segmentation
      • YOLO | Pose Estimation
      • YOLO | Object Detection
      • YOLO | Image Classification
    • Plugin Developer Documentation
      • Export Plugins
      • Batch Model Plugins
      • Model Plugins
      • File Explorer Plugins
      • Markdown Generator Plugins
      • Plugin Logger
      • [WIP] Deploying your Plugin
      • Plugin 'Host' Information
  • SDK
    • SDK Documentation
      • Project Level SDK Functions
        • add_members_to_project
        • assign_batches
        • assign_task
        • create_attachment
        • create_batch
        • create_issue
        • create_label_set
        • create_project
        • delete_issue
        • export
        • exportV3
        • get_assets
        • get_batches
        • get_issues
        • get_metrics
        • get_project
        • get_project_performance
        • get_task
        • get_tasks
        • get_task_history
        • import_labels
        • list_projects
        • requeue_tasks
        • rerun_webhook
        • update_workflow_stages
        • upload_files
        • upload_files_cloud
        • upload_files_with_asset_builder
        • upload_chat_assets
      • Organization Level SDK Functions
        • create_storage
        • delete_organization_invites
        • delete_organization_members
        • delete_storage
        • get_organization_invites
        • get_organization_members
        • get_storages
        • invite_members_to_org
        • update_organization_members_role
    • SDK - Useful Snippets
    • SDK Changelog
  • API
    • API Documentation
  • How-To
    • Add Members
      • Add multiple users to a project
    • Annotate
      • Annotate 3D Point Cloud Files on Ango Hub
      • Perform targeted OCR on images
    • Export Data
      • Automatically send Ango Hub Webhook contents to Google Sheets, Email, Slack, and more with Zapier
      • Download a JSON of your project ontology
      • Download DICOM Segmentation Masks
      • Download your annotations in the COCO, KITTI, or YOLO format
      • Download your Segmentation Masks
      • Get your export as separate JSON files for each asset
    • Manage a Project
      • Get your API Key
      • Get your Organization ID
      • Mute your notifications
      • Open an asset provided the Asset ID
      • Pre-label assets
      • Share a filtered view of the Tasks table with others
      • Transfer project ontologies between projects
      • Transfer project workflows between projects
    • Perform Model Evaluation on Ango Hub
  • Troubleshooting
    • I get a "0 Tasks Labeled" alert when trying to pre-label tasks
    • I get a 'The data couldn't be loaded properly' error when opening certain assets
    • I get a "Unknown Classification" warning when opening a task
  • Feature Availability Status for projects of the 3D Multi-Sensor Fusion type
  • Comparison between QuickServe and Ango Hub
  • Changes from Ango Hub Legacy
  • Video V2 Breaking Changes and Transition
  • Data Access, Storage, and Security
  • Two-Factor Authentication
  • Single Sign-On (SSO) Support
  • Customer Support
  • Ango Hub Status Page
Powered by GitBook
On this page
  • Properties of Attachments
  • How to View an Attachment
  • How to Upload Attachments
  • Uploading Attachments from Private Buckets
  • Importing Attachments during Asset Import
  1. Core Concepts

Attachments

Attachments are media files like text, images, and videos that can be shown to labelers while annotating certain assets.

PreviousAssetsNextBatches

Last updated 12 months ago

On Ango Hub, you can upload text, images, videos, or HTML to be shown to labelers next to specific assets during labeling.

Properties of Attachments

  • Text, image, video files or arbitrary HTML shown next to specific assets

  • Viewable by labelers during labeling

  • Unique to each asset, that is, you can show data that belongs to the asset being labeled right next to the asset itself

  • Uploadable in bulk with a simple JSON structure

  • An asset can have an unlimited number of attachments

How to View an Attachment

From the labeling editor, navigate to an asset with an attachment.

Click on the "Attachment" tab on the right side of the screen. (1)

The attachment drawer will open. If more than one attachment was uploaded for the asset in question, each attachment is shown in its own tab. (2)

How to Upload Attachments

From the Assets tab in your project, click on Import. A dialogue will pop up.

Enter the Import Attachment tab.

From here, you'll upload a JSON containing your attachments. Here's what a sample JSON looks like for image, text, or video attachments:

[
  {
    "externalId": "image-sample.jpg",
    "attachments": [
      {
        "type": "IMAGE",
        "value": "https://sample-image.jpg"
      },
      {
        "type": "TEXT",
        "value": "Some sample text."
      }
    ]
  },
  {
    "externalId": "image-sample.jpg",
    "attachments": [
      {
        "type": "VIDEO",
        "value": "http://sample-video.mp4"
      }
    ]
  }
]

Here is a sample JSON with an HTML attachment:

[
  {
    "externalId": "external-id.png",
    "attachments": [
      {
        "type": "TEXT",
        "value": "<!DOCTYPE html> <html> <head> <title>Images in a Row</title> <style>  .image-row {   display: flex;   justify-content: space-around;   margin-bottom: 20px;  }  img {   width: 30%;   height: auto;  }  .header, .footer {   text-align: center;   margin: 20px 0;  } </style> </head> <body> <div class='header'>  <h1>Header Placeholder Text</h1> </div> <div class='image-row'>  <img src='https://via.placeholder.com/150' alt='Placeholder Image 1'>  <img src='https://via.placeholder.com/150' alt='Placeholder Image 2'>  <img src='https://via.placeholder.com/150' alt='Placeholder Image 3'> </div> <div class='footer'>  <h2>Footer Placeholder Text</h2> </div> </body> </html>"
      }
    ]
  }
]

While PDF files are not directly supported as attachments, you may still display them in attachments by embedding them into an iframe and selecting the type of attachment as "TEXT".

For example, the following will display a PDF attachment:

[
  {
    "data": "https://i.imgur.com/QjQcnU6.jpeg",
    "externalId": "demo-asset",
    "attachments": [
      {
        "type": "TEXT",
        "value": "<iframe src='https://your-bucket.s3.eu-central-1.amazonaws.com/public/sample_pdf.pdf' width='600' height='400'></iframe>"
      }
    ]
  }
]

URLs may not contain spaces or "+" signs anywhere.

If attachment upload is successful, a notification will pop up on the screen notifying you of how many assets were given an attachment.

Uploading Attachments from Private Buckets

If you have created an integration between Ango Hub and your private storage, either on AWS S3 or on GCP, you can upload attachments that link to files in your private bucket. The file will never be copied or moved anywhere, and will only be shown to labelers when they open the Attachments drawer.

Then, from the same page, copy the storage ID of your newly created storage, by clicking on the "Copy" button next to the ID:

[
  {
    "externalId": "image-sample.jpg",
    "attachments": [
      {
        "type": "IMAGE",
        "value": "https://sample-image.jpg?storageId=1234567890"
      },
      {
        "type": "TEXT",
        "value": "Some sample text."
      }
    ]
  },
  {
    "externalId": "image-sample.jpg",
    "attachments": [
      {
        "type": "VIDEO",
        "value": "http://sample-video.mp4?storageId=1234567890"
      }
    ]
  }
]

Importing Attachments during Asset Import

Hub allows you to import attachments together with assets, at the same time.

To do so, you will have to use the Cloud Import JSON method for importing assets, as explained below:

  1. In your project, go to the Assets tab and click on the Add Data button.

  2. From the dialog that appears, enter the Upload Data URL tab.

  3. Prepare a JSON formatted like the following. It is an array of objects, with each object representing an asset. Each object, then, in its attachments property, will have a list of attachments, like so:

[
    {
        "externalId":"my_external_id",
        "data":"https://url-to.asset/video.mp4",
        "attachments":[
            {"type":"IMAGE","value":"https://angohub-public-assets.s3.eu-central-1.amazonaws.com/uploaded-data-6cbc3c56-58f9-4430-990d-863bd5a1a755.jpg"},
            {"type":"TEXT","value":"This is a text attachment."}
        ]
    }
]

In AWS S3, if your URL does not contain region information, your attachments may not be visible. When using S3, please ensure the region information is contained in the URL right after the bucket name, like so:

https://bucket-name.s3.eu-central-1.amazonaws.com/filename.JPG?storageId=111bb111389ff80015f2b914
  1. Drag and drop the JSON you've just created on the Upload Data URL file box:

  1. Your assets with attachments will appear in the Assets tab.

Only text, .jpg images, and .mp4 videos are supported. Videos must be encoded in such a way that the browser can play them. .

First, create an integration from the Storages tab of your . .

Prepare a JSON in the same format as the one prepared , but with the addition of storage IDs in the URLs. For example:

See here for a list of codecs supported by browsers
Organization page
You can read how to do so here
in the previous section
An attachment (right) shown next to an asset being labeled.