diff options
| author | ruki <[email protected]> | 2022-05-21 09:39:31 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-05-21 09:39:31 +0800 |
| commit | a391526b3c1ffdcad34c2095980ee046e161016e (patch) | |
| tree | 3f33404a0267b9a5edb7835adde842f080552f9b /xmake/modules/private/service/remote_cache/server_session.lua | |
| parent | 9b07378b1e3bea7d02c3d9d556a09f71ae53d610 (diff) | |
pull and push file
Diffstat (limited to 'xmake/modules/private/service/remote_cache/server_session.lua')
| -rw-r--r-- | xmake/modules/private/service/remote_cache/server_session.lua | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/xmake/modules/private/service/remote_cache/server_session.lua b/xmake/modules/private/service/remote_cache/server_session.lua index a90589d39..53845a189 100644 --- a/xmake/modules/private/service/remote_cache/server_session.lua +++ b/xmake/modules/private/service/remote_cache/server_session.lua @@ -76,10 +76,34 @@ end -- pull file function server_session:pull(respmsg) + local body = respmsg:body() + local stream = self:stream() + local cachekey = body.filename + local cachefile = path.join(self:cachedir(), cachekey:sub(1, 2), cachekey) + + -- send cache file + if os.isfile(cachefile) then + body.exists = true + if not stream:send_file(cachefile, {compress = os.filesize(cachefile) > 4096}) then + raise("send %s failed!", cachefile) + end + else + body.exists = false + if not stream:send_emptydata() then + raise("send empty data failed!") + end + end end -- push file function server_session:push(respmsg) + local body = respmsg:body() + local stream = self:stream() + local cachekey = body.filename + local cachefile = path.join(self:cachedir(), cachekey:sub(1, 2), cachekey) + if not stream:recv_file(cachefile) then + raise("recv %s failed!", cachefile) + end end -- clean files |
