feat(部署): 新增 deployment/ 内外网两套按侧部署包

按 demo/ 的写法把交付包改成「角色由目录决定」:iw/ 拷内网机、ow/ 拷外网机,
各自含镜像 tar、SQL、配置与 install.sh,install.sh 不再收 iw/ow 参数。

前端不再打进镜像,改为静态包放在 <侧>/web/ 只读挂进 nginx:1.27-alpine,
现场临时改页面直接替换文件 + restart web 即可。数据仍全部挂宿主机,
子目录命名与 deploy/offline 一致(pgdata/redis/mq/upload/logs/gate),
默认根改为包内 ./volumes,放数据盘只改 .env 的 SFILE_DATA_ROOT。

后端镜像 sfile-app:1.0.1 含传输优化那一批(实测组包 11.4×、解包 9.9×)。
出包脚本 deployment/scripts/build-package.sh 负责 jar→镜像→前端双包→sql→tar→VERSION。
This commit is contained in:
KodouWZF
2026-11-04 21:44:56 +08:00
parent 339f2c34ab
commit d39b3b035d
884 changed files with 316455 additions and 0 deletions

View File

@@ -0,0 +1 @@
import{n as e,t}from"./file-category-filter-BmGVvDiP.js";import{t as n}from"./file-DlDBClxy.js";import{t as r}from"./folder-input-lYe4JQ9T.js";import{t as i}from"./folder-DDlXKK_x.js";import{n as a,t as o}from"./remove-file-dialog-DzvgYKQv.js";import{F as s,M as c,Qt as l,Vn as u,ct as d,lt as f,pt as p,qn as m,st as h,tn as g,zn as _}from"./index-CjPx3lfT.js";import{t as v}from"./directory-breadcrumb-BIvEu5Qr.js";import{t as y}from"./data-table-B1a8BMaf.js";import{t as b}from"./pagination-DP8LewWY.js";import{t as x}from"./use-fetch-files-CTmvUeuw.js";import"./dialog-ITi__DUr.js";var S=m(u()),C=m(_());function w({handleChangeParentId:e,handleMove:t,handleRemove:a,handleFilePreview:o}){return[{accessorKey:`fileName`,header:`文件名`,cell:({row:t})=>{var a;return(0,C.jsxs)(`div`,{className:`flex items-center gap-1 break-all cursor-pointer hover:underline hover:text-primary group`,onClick:()=>{var n;(t==null||(n=t.original)==null?void 0:n.fileType)===d.DIRECTORY?e(t==null?void 0:t.original):o(t==null?void 0:t.original)},children:[(t==null||(a=t.original)==null?void 0:a.fileType)===d.FILE?(0,C.jsx)(C.Fragment,{children:(0,C.jsx)(n,{size:18,className:`text-primary`})}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(i,{size:18,className:`text-amber-500 group-hover:hidden`}),(0,C.jsx)(r,{size:18,className:`text-amber-500 group-hover:block hidden`})]}),(0,C.jsx)(`span`,{children:t.getValue(`fileName`)})]})}},{accessorKey:`createTime`,header:`创建日期`,cell:({row:e})=>(0,C.jsx)(`div`,{children:e.getValue(`createTime`)})},{accessorKey:`fileSize`,header:`文件大小`,cell:({row:e})=>(0,C.jsx)(`div`,{children:g(e.getValue(`fileSize`))})},{accessorKey:`fileCategory`,header:`文件种类`,cell:({row:e})=>(0,C.jsx)(`div`,{children:e.original.fileType===d.FILE?s(e.getValue(`fileCategory`)):`-`})},{accessorKey:`fileStatus`,header:()=>(0,C.jsx)(`div`,{className:`text-center`,children:`状态`}),cell:({row:e})=>(0,C.jsx)(`div`,{className:`text-center`,children:(0,C.jsx)(c,{status:e.original.fileStatus})})},{id:`actions`,enableHiding:!1,header:`操作`,cell:({row:e})=>{let n=e.original;return(0,C.jsxs)(`div`,{className:`space-x-2`,children:[(0,C.jsx)(l,{size:`sm`,variant:`destructive`,onClick:()=>a(e.original),children:`删除`}),(0,C.jsx)(l,{size:`sm`,variant:`outline`,onClick:()=>t(e.original),children:`移动`}),n.fileType===d.FILE&&(0,C.jsx)(l,{variant:`outline`,size:`sm`,onClick:()=>{p({code:n.fileCode})},children:`下载`})]})}}]}function T(){let[n,r]=(0,S.useState)(null),[i,s]=(0,S.useState)(!1),c=e=>{r(e),s(!0)},[l,u]=(0,S.useState)(!1),d=e=>{r(e),u(!0)},[p,m]=(0,S.useState)(!1),g=e=>{r(e),m(!0)},[_,T]=(0,S.useState)(`all`),E=(0,S.useMemo)(()=>({rootType:f.INSIDE,fileStatusIn:[h.VALID,h.PARSING,h.TRANSFERING,h.FAILED].join(`,`),fileCategory:_===`all`?void 0:_}),[_]),{openDirectorys:D,changeOpenDirectorys:O,table:k,query:A,reset:j}=x({useColumns:e=>w({handleChangeParentId:e,handleMove:c,handleRemove:d,handleFilePreview:g}),queryKey:[`insideFiles`],params:E});return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{open:i,setOpen:s,data:n,params:E,refetch:A.refetch}),(0,C.jsx)(o,{open:l,setOpen:u,data:n,refetch:A.refetch}),(0,C.jsx)(e,{open:p,setOpen:m,data:n}),(0,C.jsxs)(`div`,{className:`p-4 box-border min-h-full space-y-4`,children:[(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`div`,{className:`text-lg`,children:`我的接收`}),(0,C.jsx)(`div`,{className:`text-xs text-black/50`,children:`文件传输的状态`})]}),(0,C.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,C.jsx)(t,{fileCategory:_,setFileCategory:T,reset:j})}),(0,C.jsxs)(`div`,{className:`p-4 rounded-lg border bg-white space-y-2`,children:[(0,C.jsx)(v,{directorys:D,onChangeDirectorys:O}),(0,C.jsxs)(`div`,{className:`relative overflow-hidden`,children:[(0,C.jsx)(y,{table:k,query:A}),(0,C.jsx)(b,{table:k,className:`justify-end p-2 sticky bottom-0 left-0 right-0 z-10 bg-white`})]})]})]})]})}export{T as component,w as useColumns};