Metadata

ENDPOINT /api/v0-file/metadata/[digest] (GET only)

This endpoint responds with the file metadata and a URL to download the file.

Haplo uses the file’s cryptographic digest to identify the file. The optional fileSize parameter allows the file size to be specified as additional confirmation of the file identity.

Response

Kind Meaning HTTP status
haplo:api-v0:file:metadata The request was successful and the file metadata is returned 200

The response contains the file property with the file metadata:

  • digest
  • fileSize
  • mimeType
  • filename
  • createdAt
  • properties
  • tags

See the File interface for the meaning of these properties.

The response also contains a download property with information on how to download the file:

  • url
  • validUntil

The download URL is signed, does not need authentication, and is valid for a few hours. Treat the URL as opaque and do not attempt to parse it.

Example response

The request:

GET /api/v0-file/metadata/0f324aae890c8293ab55715dc98ccf32fa7b428b1cbdcf71e50f94f0c4f1c061?fileSize=58382

may return the response:

{
  "success": true,
  "kind": "haplo:api-v0:file:metadata",
  "file": {
    "digest": "0f324aae890c8293ab55715dc98ccf32fa7b428b1cbdcf71e50f94f0c4f1c061",
    "fileSize": 58382,
    "mimeType": "image/png",
    "filename": "figure_1.png",
    "createdAt": "2020-05-25T13:57:57.769Z",
    "properties": {
      "dimensions": {
        "width": 600,
        "height": 656,
        "units": "px"
      },
      "numberOfPages": 1,
      "thumbnail": {
        "width": 175,
        "height": 192,
        "mimeType": "image/png"
      }
    },
    "tags": {
      "example:reviewed": "t"
    }
  },
  "download": {
    "url": "https://app.example.org/file/e91b5e986699e85157b0de35e6b72917f73...",
    "validUntil": "2020-06-19T10:40:03.815Z"
  }
}