BLOBs API¶
Create a BLOB¶
- POST /v1/vaults/(string: vault_id)/blobs¶
Uploads a new BLOB. Each BLOB is limited to 52,428,800 bytes (50 MB) in size.
The request should be a form multipart upload. Both file and owner_id are individual parts.
Parameters: - vault_id – string(req’d)
Form Parameters: - file – string(req’d) - a part whose name is file and whose content is the blob data. If a filename is specified in the part, it must be 255 characters or less.
- owner_id – string(optional) - A part whose name is owner_id and whose content is the user id that owns the newly created BLOB. If null or omitted, the newly created BLOB will be ownerless.
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
- Content-Length – size of BLOB in bytes
- Content-Type – multipart/form-data
Status Codes: - 200 OK – success
- 404 Not Found – Vault does not exist
- 411 Length Required – missing Content-Header
- 413 Request Entity Too Large – BLOB size exceeds maximum
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs \\
-X POST \\
-u [API_KEY | ACCESS_TOKEN]: \\
--form "file=@xray.pdf" \\
--form "owner_id=00000000-0000-0000-0000-000000000000" \\
-H "Content-Type:multipart/form-data"
Example Response
{
"blob_filename": "xray.pdf",
"blob_id": "00000000-0000-0000-0000-000000000000",
"blob_size": "5340",
"result": "success",
"owner_id": "00000000-0000-0000-0000-000000000000",
"transaction_id": "00000000-0000-0000-0000-000000000000"
}
Read a BLOB¶
- GET /v1/vaults/(string: vault_id)/blobs/(string: blob_id)¶
Downloads a BLOB. Returns the raw BLOB Binary data.
Parameters: - vault_id – string(req’d)
- blob_id – string(req’d)
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
Status Codes: - 200 OK – success
- 404 Not Found – Vault or BLOB does not exist
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs/00000000-0000-0000-0000-000000000000 \\
-X GET \\
-u [API_KEY | ACCESS_TOKEN]:
List all BLOBs¶
- GET /v1/vaults/(string: vault_id)/blobs¶
List all BLOBs in the specified Vault.
Parameters: - vault_id – string(req’d)
Query Parameters: - page – int(optional, default: 1) - page number in paginated response
- per_page – int(optional, default: 100) - results per page in paginated response
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
Status Codes: - 200 OK – success
- 404 Not Found – Vault does not exist
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs?page=3&per_page=15 \\
-X GET \\
-u [API_KEY | ACCESS_TOKEN]:
Example Response
{
"data": {
"items": [
{
"id": "00000000-0000-0000-0000-000000000000",
"metadata_document_id": null,
"mime_type": "application/octet-stream",
"name": "xray.pdf",
"size": "5340",
"vault_id": "00000000-0000-0000-0000-000000000000",
"owner_id": "00000000-0000-0000-0000-000000000000"
}
],
"page": 1,
"per_page": 100,
"total": 1
},
"result": "success",
"transaction_id": "00000000-0000-0000-0000-000000000000"
}
Update a BLOB¶
- PUT /v1/vaults/(string: vault_id)/blobs/(string: blob_id)¶
Updates (replaces) a BLOB. Each BLOB is limited to 52,428,80 bytes (50 MB) in size.
Parameters: - vault_id – string(req’d)
- blob_id – string(req’d)
The request should be a form multipart upload. Both file and owner_id are individual parts.
Form Parameters: - file – string(req’d) - a part whose name is file and whose content is the blob data. If a filename is specified in the part, it must be 255 characters or less.
- owner_id – string(optional) - a part whose content is the user id that the BLOB will be owned by. If no owner_id is provided, then the BLOB will stay owned by its existing owner. If null, then the BLOB will become ownerless.
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
- Content-Length – size of BLOB in bytes
- Content-Type – multipart/form-data
Status Codes: - 200 OK – success
- 404 Not Found – Vault or BLOB does not exist
- 411 Length Required – missing Content-Header
- 413 Request Entity Too Large – BLOB size exceeds maximum
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs/00000000-0000-0000-0000-000000000000 \\
-X PUT \\
-u [API_KEY | ACCESS_TOKEN]: \\
--form "file=@new_xray.pdf" \\
--form "owner_id=00000000-0000-0000-0000-000000000000" \\
-H "Content-Type:multipart/form-data"
Example Response
{
"blob_filename": "new_xray.py",
"blob_id": "00000000-0000-0000-0000-000000000000",
"blob_size": "5340",
"owner_id": "00000000-0000-0000-0000-000000000000",
"result": "success",
"transaction_id": "00000000-0000-0000-0000-000000000000"
}
Update a BLOB’s Owner¶
- PUT /v1/vaults/(string: vault_id)/blobs/(string: blob_id)/owner¶
Updates only the owner_id for a BLOB having blob_id. This can be used to update the owner of a BLOB if changes to the BLOB content are undesirable. If changes to the BLOB content are desired, see the Update Blob operation.
Parameters: - vault_id – string(req’d)
- blob_id – string(req’d)
Form Parameters: - owner_id – string(req’d) - the new``owner_id`` of the user the BLOB will be owned by. If '', then the BLOB will become ownerless. Note: that owner_id cannot be omitted, it must be provided with a blank value to remove the owner.
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
Status Codes: - 200 OK – success
- 404 Not Found – Vault or BLOB does not exist
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs/00000000-0000-0000-0000-000000000000/owner \\
-X PUT \\
-u [API_KEY | ACCESS_TOKEN]: \\
--form "owner_id=00000000-0000-0000-0000-000000000000"
Example of removing the owner:
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs/00000000-0000-0000-0000-000000000000/owner \\
-X PUT \\
-u [API_KEY | ACCESS_TOKEN]: \\
--form "owner_id="
Example Response
{
"blob_id": "00000000-0000-0000-0000-000000000000",
"owner_id": "00000000-0000-0000-0000-000000000000",
"result": "success",
"transaction_id": "00000000-0000-0000-0000-000000000000"
}
Delete a BLOB¶
- DELETE /v1/vaults/(string: vault_id)/blobs/(string: blob_id)¶
Deletes the specified BLOB from the Vault.
Parameters: - vault_id – string(req’d)
Request Headers: - Authorization – API_KEY or ACCESS_TOKEN
Status Codes: - 200 OK – success
- 404 Not Found – Vault or BLOB does not exist
Example Request
curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs \\
-X DELETE \\
-u [API_KEY | ACCESS_TOKEN]:
Example Response
{
"blob_id": "00000000-0000-0000-0000-000000000000",
"result": "success",
"transaction_id": "00000000-0000-0000-0000-000000000000"
}