Generate Presigned URLs
POST
/v2/files/generate-url
const url = 'http://localhost:3000/v2/files/generate-url';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"id":"api.files.generate-url","ver":"v2","ts":"2024-04-19T12:58:47+05:30","params":{"msgid":"4a7f14c3-d61e-4d4f-be78-181834eeff6"},"request":{"files":["telemetry.json","school_data.json"],"access":"write"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url http://localhost:3000/v2/files/generate-url \ --header 'Content-Type: application/json' \ --data '{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-04-19T12:58:47+05:30", "params": { "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6" }, "request": { "files": [ "telemetry.json", "school_data.json" ], "access": "write" } }'This API generates presigned URLs to upload or download files from cloud
Request Body
Section titled “Request Body ” Media type application/json
object
Example
{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-04-19T12:58:47+05:30", "params": { "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6" }, "request": { "files": [ "telemetry.json", "school_data.json" ], "access": "write" }}Responses
Section titled “ Responses ”OK
Media type application/json
object
Examples
Success: Generate put url
{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-07-16T08:26:19+05:30", "params": { "status": "SUCCESS", "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6", "resmsgid": "5306f309-4a15-458e-89e2-29d8ac0835d4" }, "responseCode": "OK", "result": [ { "filePath": "test-connector/api-service/user_uploads/telemetry_10d595.json", "fileName": "telemetry.json", "preSignedUrl": "https://test-connector.s3.us-east-2.amazonaws.com/test-connector/api-service/user_uploads/telemetry_10d595.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA2SANCC6IV26VYMEG%2F20240716%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20240716T025619Z&X-Amz-Expires=600&X-Amz-Signature=49bbe1fe3fb1a16a0baa07ecd7331d9f6500c476287d225077f1a5dbccddeb50&X-Amz-SignedHeaders=host&x-id=PutObject" }, { "filePath": "test-connector/api-service/user_uploads/school_data_33109a.json", "fileName": "school_data.json", "preSignedUrl": "https://test-connector.s3.us-east-2.amazonaws.com/test-connector/api-service/user_uploads/school_data_33109a.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA2SANCC6IV26VYMEG%2F20240716%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20240716T025619Z&X-Amz-Expires=600&X-Amz-Signature=5ece002651b6437caa0193b5241a9172faec600093e4dca7f831645004c38cf5&X-Amz-SignedHeaders=host&x-id=PutObject" } ]}Success: Generate get url
{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-07-16T09:31:40+05:30", "params": { "status": "SUCCESS", "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6", "resmsgid": "009c0b2d-8acd-40b0-a807-bbacf9242771" }, "responseCode": "OK", "result": [ { "filePath": "test-connector/api-service/user_uploads/telemetry.json", "fileName": "telemetry.json", "preSignedUrl": "https://test-connector.s3.us-east-2.amazonaws.com/test-connector/api-service/user_uploads/telemetry.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA2SANCC6IV26VYMEG%2F20240716%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20240716T040140Z&X-Amz-Expires=600&X-Amz-Signature=f14978e897a7a15f23afb1ef9496d187a2f21abfb71c55a568461be4c5688cc6&X-Amz-SignedHeaders=host&x-id=GetObject" }, { "filePath": "test-connector/api-service/user_uploads/school_data.json", "fileName": "school_data.json", "preSignedUrl": "https://test-connector.s3.us-east-2.amazonaws.com/test-connector/api-service/user_uploads/school_data.json?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=AKIA2SANCC6IV26VYMEG%2F20240716%2Fus-east-2%2Fs3%2Faws4_request&X-Amz-Date=20240716T040140Z&X-Amz-Expires=600&X-Amz-Signature=e02f34103615f7dcc206c3afc8365ebfe9b58a00eb4c0200aa986bce58406cbd&X-Amz-SignedHeaders=host&x-id=GetObject" } ]}Headers
Section titled “Headers ” X-Powered-By
string
Example
Express Content-Length
integer
Example
1344 ETag
string
Example
W/"540-790rZel+H/rDwgvZRxvlUmZ8Gpc" Date
string
Example
Tue, 16 Jul 2024 02:56:19 GMT Connection
string
Example
keep-alive Keep-Alive
string
Example
timeout=5Bad Request
Media type application/json
object
Examples
Failure: limit exceeds
{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-07-16T08:33:04+05:30", "params": { "status": "FAILED", "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6", "resmsgid": "d3a606ca-47d0-4746-95a1-c8692e749959" }, "responseCode": "BAD_REQUEST", "error": { "code": "FILES_URL_GENERATION_LIMIT_EXCEED", "message": "Pre-signed URL generation failed: limit exceeded.", "trace": "" }}Failure: Invalid request
{ "id": "api.files.generate-url", "ver": "v2", "ts": "2024-07-16T09:31:10+05:30", "params": { "status": "FAILED", "msgid": "4a7f14c3-d61e-4d4f-be78-181834eeff6", "resmsgid": "c3e9da1c-09f3-4a3b-84ec-a19efc68b856" }, "responseCode": "BAD_REQUEST", "error": { "code": "FILES_GENERATE_URL_INPUT_INVALID", "message": "#properties/request/properties/access/enum must be equal to one of the allowed values", "trace": "" }}Headers
Section titled “Headers ” X-Powered-By
string
Example
Express Content-Length
integer
Example
355 ETag
string
Example
W/"163-9oQYJJEaBH3mJAnzDHXn2MxE848" Date
string
Example
Tue, 16 Jul 2024 03:03:04 GMT Connection
string
Example
keep-alive Keep-Alive
string
Example
timeout=5