specklesystems / speckle-server

The Speckle Server, Frontend, 3D Viewer, & other JS utilities.
https://speckle.systems
Other
661 stars 166 forks source link

Stream Blob Storage API #757

Closed didimitrie closed 1 year ago

didimitrie commented 2 years ago

Usecases

There's several things in the works that need an API to store blobs.

1) In object pointers to blobs (read: texture support, Revit family files) (stream bound for ACL checks, just like objects) 2) Comment attachments (read: ability to upload a pdf or image) (stream bound for ACL checks, just like objects)

There's several things that could be grandfathered in to use this API:

3) File Uploads (stream bound for ACL checks, just like objects) 5) Previews (stream bound for ACL checks, just like objects) 4) Profile pictures (optional)

Ecosystem discussions needed

How will this implementation look like from the SDKs side, specifically .NET, Py & related connectors?

Receiving:

Sending (less difficult):

Prelim API Spec Braindump

NOTE: The file uploads module (see here) can be decoupled from its original file-processing goal :)

POST /api/v1/stream/:streamId/blob -> straightforward multipart file upload GET /api/v1/stream/:streamId/blob/:hash -> straightforward file download

This is a s0 :)

I was here :)

gjedlicska commented 2 years ago

The preview service blob storing capability is currently not possible, since the blob creation api needs authZ.

We could: