Skip to main content
Version: 2.0

GraphGrid Files

Platform Version 2.0

API Version 1.0

Introduction

GraphGrid Files allows users to upload a file into a bucket in S3. Any file types may be uploaded. Click here for more information on how to configure AWS with GraphGrid.

API

This Files API version is 1.0 and as such all endpoints are rooted at /1.0/. For example, http://localhost/1.0/files
(requires auth) would be the base context for this Files API under the GraphGrid API deployed at http://localhost.

Get Status

Check the status of GraphGrid Files. Will return a 200 OK response if healthy.

Base URL: /1.0/files/status
Method: GET

Request

curl --location --request GET "${API_BASE}/1.0/files/status"

Response

{
"status": "OK"
}

Get Authenticated

Checks token for authorization to use the Files API.

  • BaseURL: /1.0/files/upload
  • Method: GET
curl --location --request GET 'http://localhost/1.0/files/authenticated' \
--header "Authorization: Bearer ${BEARER_TOKEN}"
{
"status": "AUTHENTICATED"
}

Upload Files

Upload a file to S3 and create a File node in ONgDB.

  • BaseURL: /1.0/files/upload
  • Method: POST

Params

ParameterDescription
bucket OptionalThe name of the bucket in S3. Default: graphgrid-files-private or graphgrid-files-puiblic depending on makePublic param
region OptionalThe configured AWS region. Default: us-west-2
keyThe name of the unique identifier for an object within a bucket.
metadataThe required metadata to upload a file and write it to ONgDB.
fileDataThe path to the file.
expirationTimeout option for remote operation.
makePublicOption to make uploaded file public (true) or private (false).
If the bucket parameter is unassigned and the makePublic parameter is set to true, the file will be uploaded to the default bucket

graphgrid-files-public. Assigning false will upload the file to the default bucket graphgrid-files-private.

Request

curl --location --request POST "${API_BASE}/1.0/files/upload" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--form 'bucket="graphgrid-files-public"' \
--form 'region="us-east-1"' \
--form 'key="test"' \
--form 'metadata="{\"createRelationships\":[]%2C \"createProperties\":{\"md5\":\"auto\"%2C \"sha1\":\"auto\"%2C \"sha256\":\"auto\"%2C \"description\":\"Some Description\"}}"' \
--form 'fileData=@"/Projects/MyProject.png"' \
--form 'expiration="300"' \
--form 'makePublic="true"'

Response

{
"uploadFileResults": [
{
"file": {
"id": 35025717,
"labels": [],
"enver": 0,
"createdAt": "2022-09-02T15:31:29+00:00",
"updatedAt": "2022-09-02T15:31:29+00:00",
"createdBy": "webmasteratgraphgriddotcom",
"lastModifiedBy": "webmasteratgraphgriddotcom",
"grn": "grn:gg:file:0A53BusPulfmNpz4LXZNetRUu0MQzMClCFshFoq4zlxr",
"filename": "MyProject.png",
"contentType": "image/png",
"size": 206215,
"bucket": "graphgrid-files-public",
"key": "test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png",
"url": "https://graphgrid-files-public.s3.amazonaws.com/test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220902T153124Z&X-Amz-SignedHeaders=host&X-Amz-Expires=299&X-Amz-Credential=YiHbuWh5BuXDDFsIaowaMjBLtOjsBMIPiQ14jskZbochQ
us-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dshBSQMAr5VcH3WhSTWloIfA3zPtXnHMMfamb8LWpnUh1WJbs61d6pjtez15y7bG",
"description": "Some Description",
"md5": "jTpV14GGYV1tAnolOwACOVg1x26Ap3Tc",
"sha1": "4d8031eab5e871034c1cfc3cab58471cf70a25f9",
"sha256": "60df4133edc8ffbfdc179037a78e0e359bb7fb0c92c85f12d6109b468ffd045f",
"thumbnailImageFormat": {
"id": 35025721,
"labels": [],
"enver": 0,
"createdAt": "2022-09-02T15:31:29+00:00",
"updatedAt": "2022-09-02T15:31:29+00:00",
"createdBy": "webmasteratgraphgriddotcom",
"lastModifiedBy": "webmasteratgraphgriddotcom",
"grn": "grn:gg:imageformat:WBSAvW9jbUqZtmSPkVk3YaHj0ejVrlmTz1o7utgzcW89",
"format": "THUMBNAIL",
"width": 90,
"height": 90,
"originalUrl": "https://graphgrid-files-public.s3.amazonaws.com/test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220902T153124Z&X-Amz-SignedHeaders=host&X-Amz-Expires=299&X-Amz-Credential=YiHbuWh5BuXDDFsIaowaMjBLtOjsBMIPiQ14jskZbochQ
us-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dshBSQMAr5VcH3WhSTWloIfA3zPtXnHMMfamb8LWpnUh1WJbs61d6pjtez15y7bG",
"md5": "c737a6c423ffd29681f9576ced5ed2f9",
"url": "http://localhost/1.0/file/download?grns=grn:gg:imageformat:WBSAvW9jbUqZtmSPkVk3YaHj0ejVrlmTz1o7utgzcW89&region=us-east-1&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"smallImageFormat": {
"id": 35025713,
"labels": [],
"enver": 0,
"createdAt": "2022-09-02T15:31:29+00:00",
"updatedAt": "2022-09-02T15:31:29+00:00",
"createdBy": "webmasteratgraphgriddotcom",
"lastModifiedBy": "webmasteratgraphgriddotcom",
"grn": "grn:gg:imageformat:bm4XfPCXahQs6puqrdGuj3Ilj6ZJ5JBE7BvpwLFVUCOZ",
"format": "SMALL",
"width": 180,
"height": 180,
"originalUrl": "https://graphgrid-files-public.s3.amazonaws.com/test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220902T153124Z&X-Amz-SignedHeaders=host&X-Amz-Expires=299&X-Amz-Credential=YiHbuWh5BuXDDFsIaowaMjBLtOjsBMIPiQ14jskZbochQ
us-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dshBSQMAr5VcH3WhSTWloIfA3zPtXnHMMfamb8LWpnUh1WJbs61d6pjtez15y7bG",
"md5": "8667da98bed6de4de23b726991339ecb",
"url": "http://localhost/1.0/file/download?grns=grn:gg:imageformat:bm4XfPCXahQs6puqrdGuj3Ilj6ZJ5JBE7BvpwLFVUCOZ&region=us-east-1&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"mediumImageFormat": {
"id": 35025674,
"labels": [],
"enver": 0,
"createdAt": "2022-09-02T15:31:29+00:00",
"updatedAt": "2022-09-02T15:31:29+00:00",
"createdBy": "webmasteratgraphgriddotcom",
"lastModifiedBy": "webmasteratgraphgriddotcom",
"grn": "grn:gg:imageformat:PZhTzleLtKSV8V5sqaGz6UVMgAVftX7GDU4nDwQI0jKu",
"format": "MEDIUM",
"width": 360,
"height": 360,
"originalUrl": "https://graphgrid-files-public.s3.amazonaws.com/test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220902T153124Z&X-Amz-SignedHeaders=host&X-Amz-Expires=299&X-Amz-Credential=YiHbuWh5BuXDDFsIaowaMjBLtOjsBMIPiQ14jskZbochQ
us-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dshBSQMAr5VcH3WhSTWloIfA3zPtXnHMMfamb8LWpnUh1WJbs61d6pjtez15y7bG",
"md5": "jTpV14GGYV1tAnolOwACOVg1x26Ap3Tc",
"url": "http://localhost/1.0/file/download?grns=grn:gg:imageformat:PZhTzleLtKSV8V5sqaGz6UVMgAVftX7GDU4nDwQI0jKu&region=us-east-1&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"largeImageFormat": {
"id": 35025568,
"labels": [],
"enver": 0,
"createdAt": "2022-09-02T15:31:29+00:00",
"updatedAt": "2022-09-02T15:31:29+00:00",
"createdBy": "webmasteratgraphgriddotcom",
"lastModifiedBy": "webmasteratgraphgriddotcom",
"grn": "grn:gg:imageformat:kdNTAyLzIajmz4Xu01sNcEPOpUv51kfmcokV5JFEg9kq",
"format": "LARGE",
"width": 720,
"height": 720,
"originalUrl": "https://graphgrid-files-public.s3.amazonaws.com/test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20220902T153124Z&X-Amz-SignedHeaders=host&X-Amz-Expires=299&X-Amz-Credential=YiHbuWh5BuXDDFsIaowaMjBLtOjsBMIPiQ14jskZbochQ
us-east-1%2Fs3%2Faws4_request&X-Amz-Signature=dshBSQMAr5VcH3WhSTWloIfA3zPtXnHMMfamb8LWpnUh1WJbs61d6pjtez15y7bG",
"md5": "c18405d2a2d64d3c2ff011a0d03280dd",
"url": "http://localhost/1.0/file/download?grns=grn:gg:imageformat:kdNTAyLzIajmz4Xu01sNcEPOpUv51kfmcokV5JFEg9kq&region=us-east-1&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"grnType": "file",
"label": "File"
},
"uploadResult": {
"bucketName": "graphgrid-files-public",
"key": "test/12ab3444cde8ffbbbb179999a99e0e009bb7fb0c90c09f0909109b098ffd009f/MyProject.png",
"versionId": null,
"etag": "jTpV14GGYV1tAnolOwACOVg1x26Ap3Tc"
}
}
]
}

Get file by grn

Return a file by its grn

  • BaseURL: /1.0/file/{{fileGrn}}
  • Method: GET
curl --location --request GET " ${API_BASE}/1.0/file/grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7" \
--header "Authorization: Bearer ${BEARER_TOKEN}"

Response

{
"id": 3,
"labels": ["GraphGridResource"],
"enver": 0,
"createdAt": "2022-09-09T15:42:11.625Z",
"updatedAt": "2022-09-09T15:42:11.625Z",
"createdBy": "graphgrid",
"lastModifiedBy": "graphgrid",
"grn": "grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7",
"filename": "10_10.png",
"contentType": "image/png",
"size": 10553,
"bucket": "graphgrid-files-public",
"key": "test/a0a009e52f9fef08980a4a3df2ed83cd48c5f4cc3b4da21eb0d1b9676aaf7413/10_10.png",
"url": "http://localhost/1.0/files/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-west-2&expiration=300",
"description": "Some Description",
"md5": "8a0950587571520b256d53ad365fa07e",
"sha1": "1f9fe5872d7201b4faccf44f49f8f16407eac411",
"sha256": "a0a009e52f9fef08980a4a3df2ed83cd48c5f4cc3b4da21eb0d1b9676aaf7413",
"thumbnailImageFormat": {
"id": 2,
"labels": ["GraphGridResource"],
"enver": 0,
"createdAt": "2022-09-09T15:42:12.302Z",
"updatedAt": "2022-09-09T15:42:12.302Z",
"createdBy": "graphgrid",
"lastModifiedBy": "graphgrid",
"grn": "grn:gg:imageformat:VFpUmtKtbAhiR9Dw7jtpgzEMkRb8hS8JcZLXZGw0DjoN",
"format": "THUMBNAIL",
"width": 90,
"height": 90,
"originalUrl": "http://localhost/1.0/files/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-west-2&expiration=300",
"md5": "~�w�3p�~,]dJ���",
"url": "http://localhost/1.0/files/download?grns=grn:gg:imageformat:VFpUmtKtbAhiR9Dw7jtpgzEMkRb8hS8JcZLXZGw0DjoN&region=us-west-2&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"smallImageFormat": {
"id": 64,
"labels": ["GraphGridResource"],
"enver": 0,
"createdAt": "2022-09-09T15:42:11.824Z",
"updatedAt": "2022-09-09T15:42:11.824Z",
"createdBy": "graphgrid",
"lastModifiedBy": "graphgrid",
"grn": "grn:gg:imageformat:JY6ApBLdUHu7R5BA57onIjVF4fHMhWmfb4WH8ZjSvWBV",
"format": "SMALL",
"width": 180,
"height": 180,
"originalUrl": "http://localhost/1.0/files/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-west-2&expiration=300",
"md5": "Pc�%�P��>L[�I���",
"url": "http://localhost/1.0/files/download?grns=grn:gg:imageformat:JY6ApBLdUHu7R5BA57onIjVF4fHMhWmfb4WH8ZjSvWBV&region=us-west-2&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"mediumImageFormat": {
"id": 122,
"labels": ["GraphGridResource"],
"enver": 0,
"createdAt": "2022-09-09T15:42:11.951Z",
"updatedAt": "2022-09-09T15:42:11.951Z",
"createdBy": "graphgrid",
"lastModifiedBy": "graphgrid",
"grn": "grn:gg:imageformat:5KVEqJrogqVUBt4S7Ebs1dGN652GdpNOAxCGweHSkFMw",
"format": "MEDIUM",
"width": 360,
"height": 360,
"originalUrl": "http://localhost/1.0/files/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-west-2&expiration=300",
"md5": ">�\u000b\u000bHdvh�q��I�",
"url": "http://localhost/1.0/files/download?grns=grn:gg:imageformat:5KVEqJrogqVUBt4S7Ebs1dGN652GdpNOAxCGweHSkFMw&region=us-west-2&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"largeImageFormat": {
"id": 23,
"labels": ["GraphGridResource"],
"enver": 0,
"createdAt": "2022-09-09T15:42:12.254Z",
"updatedAt": "2022-09-09T15:42:12.254Z",
"createdBy": "graphgrid",
"lastModifiedBy": "graphgrid",
"grn": "grn:gg:imageformat:S0T0Ij5ZGLFFCnsf4XoJ04vXVD6W8U45dLi4vUCjZ5X5",
"format": "LARGE",
"width": 720,
"height": 720,
"originalUrl": "http://localhost/1.0/files/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-west-2&expiration=300",
"md5": "�g\\���1kd\u000b�l7�",
"url": "http://localhost/1.0/files/download?grns=grn:gg:imageformat:S0T0Ij5ZGLFFCnsf4XoJ04vXVD6W8U45dLi4vUCjZ5X5&region=us-west-2&expiration=300",
"grnType": "imageformat",
"label": "ImageFormat"
},
"extension": "png",
"grnType": "file",
"label": "File"
}

Download file in ONgDB to MinIO

Downloads a file in ONgDB by the file grn to MinIO

  • BaseURL: /1.0/file/download?grns={{fileGrn}}&region={{awsRegion}}&expiration={{timeoutNum}}
  • Method: POST
curl --location --request POST "${API_BASE}/1.0/file/download?grns=grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7&region=us-east-1&expiration=300" \
--header 'Content-Type: application/json' \
--header "Authorization: Bearer ${BEARER_TOKEN}" \
--data-raw '{
"bucket": "graphgrid-files-public",
"key": "test",
"duration": "1h30m30s"
}'

Response

{
"grn:gg:file:cMuuifdsrcfsuJmpOYUaK9PAud6pkAyCbZJhQ8BQFIB7": "http://minio:9000/graphgrid-files-private/test/a0a009e52f9fef08980a4a3df2ed83cd48c5f4cc3b4da21eb0d1b9676aaf7413/10_10.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20220914%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20220914T151449Z&X-Amz-Expires=300&X-Amz-SignedHeaders=host&X-Amz-Signature=8765e4b32f1a4829a0411112c7f0487b74d4f58887ea2ae427575abcd95d3ef"
}