refactor(storage): drop per-upload storage_driver, use storage_config as single source

Remove w_uploads.storage_driver and route all read/write/delete paths through
storage.Active() backed by storage_config.driver. Block direct driver switches
when uploads exist; require migration task instead. Simplify migration to
cursor-based file_path iteration without per-row driver updates.
This commit is contained in:
ryan
2026-06-18 13:56:31 +08:00
parent 1f391e9ec2
commit 410ff14795
25 changed files with 512 additions and 604 deletions
+89 -92
View File
@@ -143,6 +143,90 @@ definitions:
token:
type: string
type: object
handler.batchDownloadRequest:
properties:
ids:
items:
type: string
minItems: 1
type: array
required:
- ids
type: object
handler.distributionItem:
properties:
count:
type: integer
name:
type: string
size:
type: integer
type: object
handler.fileStatsResponse:
properties:
categories:
items:
$ref: '#/definitions/handler.distributionItem'
type: array
total_count:
type: integer
total_size:
type: integer
trend:
items:
$ref: '#/definitions/handler.trendItem'
type: array
types:
items:
$ref: '#/definitions/handler.distributionItem'
type: array
type: object
handler.listFilesResponse:
properties:
items:
items:
$ref: '#/definitions/model.Upload'
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
handler.listMyFilesResponse:
properties:
items:
items:
$ref: '#/definitions/model.Upload'
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
handler.trendItem:
properties:
count:
type: integer
date:
type: string
size:
type: integer
type: object
handler.updateMyFileRequest:
properties:
access_mode:
enum:
- 0
- 1
type: integer
file_name:
maxLength: 255
type: string
type: object
logger.LogEntry:
properties:
data:
@@ -541,9 +625,6 @@ definitions:
allOf:
- $ref: '#/definitions/model.UploadStatus'
description: 状态
storage_driver:
description: 存储引擎驱动 (如 local, s3, oss)
type: string
type:
description: 业务标识类型 (如 avatar, doc, attachment)
type: string
@@ -1169,90 +1250,6 @@ definitions:
upstream_repository:
type: string
type: object
upload.batchDownloadRequest:
properties:
ids:
items:
type: string
minItems: 1
type: array
required:
- ids
type: object
upload.distributionItem:
properties:
count:
type: integer
name:
type: string
size:
type: integer
type: object
upload.fileStatsResponse:
properties:
categories:
items:
$ref: '#/definitions/upload.distributionItem'
type: array
total_count:
type: integer
total_size:
type: integer
trend:
items:
$ref: '#/definitions/upload.trendItem'
type: array
types:
items:
$ref: '#/definitions/upload.distributionItem'
type: array
type: object
upload.listFilesResponse:
properties:
items:
items:
$ref: '#/definitions/model.Upload'
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
upload.listMyFilesResponse:
properties:
items:
items:
$ref: '#/definitions/model.Upload'
type: array
page:
type: integer
page_size:
type: integer
total:
type: integer
type: object
upload.trendItem:
properties:
count:
type: integer
date:
type: string
size:
type: integer
type: object
upload.updateMyFileRequest:
properties:
access_mode:
enum:
- 0
- 1
type: integer
file_name:
maxLength: 255
type: string
type: object
user.changePasswordRequest:
properties:
new_password:
@@ -3409,7 +3406,7 @@ paths:
- $ref: '#/definitions/response.Any'
- properties:
data:
$ref: '#/definitions/upload.listFilesResponse'
$ref: '#/definitions/handler.listFilesResponse'
type: object
"401":
description: 未登录
@@ -3501,7 +3498,7 @@ paths:
name: request
required: true
schema:
$ref: '#/definitions/upload.batchDownloadRequest'
$ref: '#/definitions/handler.batchDownloadRequest'
produces:
- application/octet-stream
responses:
@@ -3535,7 +3532,7 @@ paths:
- $ref: '#/definitions/response.Any'
- properties:
data:
$ref: '#/definitions/upload.fileStatsResponse'
$ref: '#/definitions/handler.fileStatsResponse'
type: object
"401":
description: 未登录
@@ -4193,7 +4190,7 @@ paths:
name: request
required: true
schema:
$ref: '#/definitions/upload.updateMyFileRequest'
$ref: '#/definitions/handler.updateMyFileRequest'
produces:
- application/json
responses:
@@ -4253,7 +4250,7 @@ paths:
- $ref: '#/definitions/response.Any'
- properties:
data:
$ref: '#/definitions/upload.listMyFilesResponse'
$ref: '#/definitions/handler.listMyFilesResponse'
type: object
"401":
description: 未登录