Skip to content

Commit

Permalink
rsc: Allow file blobs in DbOnly Store (#1634)
Browse files Browse the repository at this point in the history
  • Loading branch information
V-FEXrt authored Aug 22, 2024
1 parent e238ef1 commit cb8736c
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions share/wake/lib/system/remote_cache_api.wake
Original file line number Diff line number Diff line change
Expand Up @@ -316,11 +316,7 @@ export def makeRemoteCacheApi (config: String): Result RemoteCacheApi Error =
# (RemoteCacheApi "foo" 1 None) | rscApiPostStringBlob "foo" "my foo contents" = Fail "authorization required"
# ```
export def rscApiPostStringBlob (name: String) (value: String) (api: RemoteCacheApi): Result String Error =
def contentType =
if value.strlen < 95 then
Some "blob/small"
else
None
def contentType = contentTypeFromSize value.strlen

require Pass temp = writeTempFile name value

Expand All @@ -336,7 +332,12 @@ export def rscApiPostStringBlob (name: String) (value: String) (api: RemoteCache
export def rscApiPostFileBlob (name: String) (file: String) (api: RemoteCacheApi): Result String Error =
# We must use unsafe here since we cannot elevate *file* to a Path without either copying it
# or triggering the 'job output by multiple files' error.
uploadBlobRequest api (unsafe_addFormData name file None)

def contentType = match (unsafe_stat file)
Pass (Stat _ _ size) -> contentTypeFromSize size
Fail _ -> None

uploadBlobRequest api (unsafe_addFormData name file contentType)

# rscApiPostJob: Posts a job defined by *req* to the remote cache server. Requires authorization.
#
Expand Down Expand Up @@ -631,6 +632,10 @@ export def rscApiGetFileBlob ((CacheSearchBlob _ uri): CacheSearchBlob) (path: S
Pass path

## --- Helper functions ---

def contentTypeFromSize size =
if size < 95 then Some "blob/small" else None

# TODO: Delete these once new json API is added to wake repo
def jField (jvalue: JValue) (key: String) =
require JObject obj = jvalue
Expand Down

0 comments on commit cb8736c

Please sign in to comment.