@@ -51,189 +51,6 @@ const docTemplate = `{
5151 }
5252 }
5353 },
54- "/files/cfs": {
55- "delete": {
56- "description": "Delete base_path/rel_path; deleting a non-existent file is idempotent",
57- "consumes": [
58- "application/json"
59- ],
60- "produces": [
61- "application/json"
62- ],
63- "tags": [
64- "pv"
65- ],
66- "summary": "Delete a single file in a volume",
67- "operationId": "PVDeleteFile",
68- "parameters": [
69- {
70- "type": "string",
71- "description": "jail root path issued by apiserver",
72- "name": "base_path",
73- "in": "query",
74- "required": true
75- },
76- {
77- "type": "string",
78- "description": "volume-relative path",
79- "name": "rel_path",
80- "in": "query",
81- "required": true
82- }
83- ],
84- "responses": {
85- "200": {
86- "description": "OK",
87- "schema": {
88- "$ref": "#/definitions/pkg_server_pv.DeleteResponse"
89- }
90- }
91- }
92- }
93- },
94- "/files/cfs/archive": {
95- "post": {
96- "description": "Read the file, compute sha256, and PUT it to the presigned upload URL",
97- "consumes": [
98- "application/json"
99- ],
100- "produces": [
101- "application/json"
102- ],
103- "tags": [
104- "pv"
105- ],
106- "summary": "Archive a file to bkrepo",
107- "operationId": "ArchiveFile",
108- "parameters": [
109- {
110- "description": "Archive request",
111- "name": "request",
112- "in": "body",
113- "required": true,
114- "schema": {
115- "$ref": "#/definitions/pkg_server_pv.ArchiveRequest"
116- }
117- }
118- ],
119- "responses": {
120- "200": {
121- "description": "OK",
122- "schema": {
123- "$ref": "#/definitions/pkg_server_pv.ArchiveResponse"
124- }
125- }
126- }
127- }
128- },
129- "/files/cfs/list": {
130- "post": {
131- "description": "List files under base_path/rel_path with pagination, optionally recursive",
132- "consumes": [
133- "application/json"
134- ],
135- "produces": [
136- "application/json"
137- ],
138- "tags": [
139- "pv"
140- ],
141- "summary": "List files in a volume path",
142- "operationId": "ListFiles",
143- "parameters": [
144- {
145- "description": "List request",
146- "name": "request",
147- "in": "body",
148- "required": true,
149- "schema": {
150- "$ref": "#/definitions/pkg_server_pv.ListRequest"
151- }
152- }
153- ],
154- "responses": {
155- "200": {
156- "description": "OK",
157- "schema": {
158- "$ref": "#/definitions/pkg_server_pv.ListResponse"
159- }
160- }
161- }
162- }
163- },
164- "/files/cfs/preview": {
165- "post": {
166- "description": "Return the first max_bytes of a text file as UTF-8; 415 for non-text types",
167- "consumes": [
168- "application/json"
169- ],
170- "produces": [
171- "text/plain"
172- ],
173- "tags": [
174- "pv"
175- ],
176- "summary": "Preview a text file",
177- "operationId": "PreviewFile",
178- "parameters": [
179- {
180- "description": "Preview request",
181- "name": "request",
182- "in": "body",
183- "required": true,
184- "schema": {
185- "$ref": "#/definitions/pkg_server_pv.PreviewRequest"
186- }
187- }
188- ],
189- "responses": {
190- "200": {
191- "description": "OK",
192- "headers": {
193- "X-Truncated": {
194- "type": "string",
195- "description": "whether the content was truncated"
196- }
197- }
198- }
199- }
200- }
201- },
202- "/files/cfs/stat": {
203- "post": {
204- "description": "Return metadata of base_path/rel_path; returns 200 with exists=false if not found",
205- "consumes": [
206- "application/json"
207- ],
208- "produces": [
209- "application/json"
210- ],
211- "tags": [
212- "pv"
213- ],
214- "summary": "Stat a file in a volume",
215- "operationId": "StatFile",
216- "parameters": [
217- {
218- "description": "Stat request",
219- "name": "request",
220- "in": "body",
221- "required": true,
222- "schema": {
223- "$ref": "#/definitions/pkg_server_pv.StatRequest"
224- }
225- }
226- ],
227- "responses": {
228- "200": {
229- "description": "OK",
230- "schema": {
231- "$ref": "#/definitions/pkg_server_pv.StatResponse"
232- }
233- }
234- }
235- }
236- },
23754 "/files/download": {
23855 "get": {
23956 "description": "Download a file from the specified path",
@@ -412,167 +229,6 @@ const docTemplate = `{
412229 "type": "string"
413230 }
414231 }
415- },
416- "pkg_server_pv.ArchiveRequest": {
417- "type": "object",
418- "required": [
419- "base_path",
420- "rel_path",
421- "upload_url"
422- ],
423- "properties": {
424- "base_path": {
425- "type": "string"
426- },
427- "rel_path": {
428- "type": "string"
429- },
430- "upload_url": {
431- "type": "string"
432- }
433- }
434- },
435- "pkg_server_pv.ArchiveResponse": {
436- "type": "object",
437- "properties": {
438- "mtime": {
439- "description": "Mtime 归档时文件的修改时间(RFC3339, UTC)",
440- "type": "string"
441- },
442- "sha256": {
443- "type": "string"
444- },
445- "size": {
446- "type": "integer"
447- }
448- }
449- },
450- "pkg_server_pv.DeleteResponse": {
451- "type": "object",
452- "properties": {
453- "deleted": {
454- "type": "boolean"
455- }
456- }
457- },
458- "pkg_server_pv.FileItem": {
459- "type": "object",
460- "properties": {
461- "is_dir": {
462- "type": "boolean"
463- },
464- "mime": {
465- "type": "string"
466- },
467- "modified_at": {
468- "type": "string"
469- },
470- "name": {
471- "type": "string"
472- },
473- "path": {
474- "description": "Path 相对 jail 根(即 volume 根)的路径",
475- "type": "string"
476- },
477- "sha256": {
478- "description": "Sha256 恒为 nil, 去重表缓存值由 apiserver 回填",
479- "type": "string"
480- },
481- "size": {
482- "type": "integer"
483- }
484- }
485- },
486- "pkg_server_pv.ListRequest": {
487- "type": "object",
488- "required": [
489- "base_path"
490- ],
491- "properties": {
492- "base_path": {
493- "type": "string"
494- },
495- "page": {
496- "type": "integer"
497- },
498- "page_size": {
499- "type": "integer"
500- },
501- "recursive": {
502- "type": "boolean"
503- },
504- "rel_path": {
505- "type": "string"
506- }
507- }
508- },
509- "pkg_server_pv.ListResponse": {
510- "type": "object",
511- "properties": {
512- "items": {
513- "type": "array",
514- "items": {
515- "$ref": "#/definitions/pkg_server_pv.FileItem"
516- }
517- },
518- "total": {
519- "type": "integer"
520- }
521- }
522- },
523- "pkg_server_pv.PreviewRequest": {
524- "type": "object",
525- "required": [
526- "base_path",
527- "rel_path"
528- ],
529- "properties": {
530- "base_path": {
531- "type": "string"
532- },
533- "max_bytes": {
534- "description": "MaxBytes 截断上限, \u003c=0 时使用 config.G.PreviewMaxBytes",
535- "type": "integer"
536- },
537- "rel_path": {
538- "type": "string"
539- }
540- }
541- },
542- "pkg_server_pv.StatRequest": {
543- "type": "object",
544- "required": [
545- "base_path",
546- "rel_path"
547- ],
548- "properties": {
549- "base_path": {
550- "type": "string"
551- },
552- "rel_path": {
553- "type": "string"
554- }
555- }
556- },
557- "pkg_server_pv.StatResponse": {
558- "type": "object",
559- "properties": {
560- "exists": {
561- "type": "boolean"
562- },
563- "mime": {
564- "type": "string"
565- },
566- "modified_at": {
567- "type": "string"
568- },
569- "path": {
570- "type": "string"
571- },
572- "size": {
573- "type": "integer"
574- }
575- }
576232 }
577233 }
578234}`
0 commit comments