{ "swagger": "2.0", "info": { "description": "RustFS 文件存储系统 API,支持分片上传、文件预览、分页查询等高级功能。", "title": "RustFS File System API", "contact": {}, "version": "1.1" }, "host": "localhost:8080", "basePath": "/", "paths": { "/buckets": { "get": { "description": "列出所有可用的 S3 存储桶", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "存储桶管理" ], "summary": "获取存储桶列表", "responses": { "200": { "description": "存储桶列表", "schema": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "string" } } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "post": { "description": "创建一个新的 S3 存储桶", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "存储桶管理" ], "summary": "创建存储桶", "parameters": [ { "description": "创建存储桶请求参数", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/file-system_internal_api_requests.CreateBucketRequest" } } ], "responses": { "200": { "description": "创建成功消息", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "参数错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } }, "delete": { "description": "删除指定的 S3 存储桶(桶必须为空)", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "存储桶管理" ], "summary": "删除存储桶", "parameters": [ { "description": "删除存储桶请求参数", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/file-system_internal_api_requests.DeleteBucketRequest" } } ], "responses": { "200": { "description": "删除成功消息", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "参数错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/delete": { "delete": { "description": "从指定的存储桶删除文件", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "文件操作" ], "summary": "删除文件", "parameters": [ { "description": "请求参数", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/file-system_internal_api_requests.DeleteFileRequest" } } ], "responses": { "200": { "description": "删除成功消息", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "参数错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/download": { "get": { "description": "从指定的存储桶下载文件", "consumes": [ "application/json" ], "produces": [ "application/octet-stream" ], "tags": [ "文件操作" ], "summary": "下载文件", "parameters": [ { "type": "string", "description": "存储桶名称", "name": "bucket_name", "in": "query", "required": true }, { "type": "string", "description": "对象键(文件名)", "name": "object_key", "in": "query", "required": true } ], "responses": { "200": { "description": "文件流", "schema": { "type": "file" } }, "400": { "description": "参数错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/list": { "get": { "description": "分页查询存储桶中的文件", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "文件操作" ], "summary": "文件列表 (分页)", "parameters": [ { "type": "string", "description": "存储桶名称", "name": "bucket_name", "in": "query", "required": true }, { "type": "string", "description": "文件名前缀筛选", "name": "prefix", "in": "query" }, { "type": "integer", "description": "每页数量", "name": "max_keys", "in": "query" }, { "type": "string", "description": "分页Token", "name": "token", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/file-system_internal_domain_repository.ListFilesResult" } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/multipart/complete": { "post": { "description": "合并所有分片完成上传", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "大文件上传" ], "summary": "完成分片上传", "parameters": [ { "description": "请求参数", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/file-system_internal_api_requests.CompleteMultipartRequest" } } ], "responses": { "200": { "description": "返回文件位置", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/multipart/init": { "post": { "description": "开始一个新的大文件分片上传任务", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "大文件上传" ], "summary": "初始化分片上传", "parameters": [ { "description": "请求参数", "name": "request", "in": "body", "required": true, "schema": { "$ref": "#/definitions/file-system_internal_api_requests.InitMultipartRequest" } } ], "responses": { "200": { "description": "返回 upload_id", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/multipart/part": { "put": { "description": "上传单个文件分片", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "大文件上传" ], "summary": "上传分片", "parameters": [ { "type": "string", "description": "存储桶名称", "name": "bucket_name", "in": "formData", "required": true }, { "type": "string", "description": "对象键", "name": "object_key", "in": "formData", "required": true }, { "type": "string", "description": "上传ID", "name": "upload_id", "in": "formData", "required": true }, { "type": "integer", "description": "分片序号 (从1开始)", "name": "part_number", "in": "formData", "required": true }, { "type": "file", "description": "分片文件数据", "name": "file", "in": "formData", "required": true } ], "responses": { "200": { "description": "返回 ETag", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/preview": { "get": { "description": "生成文件的临时预览链接 (24小时有效)", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "文件操作" ], "summary": "获取预览链接", "parameters": [ { "type": "string", "description": "存储桶名称", "name": "bucket_name", "in": "query", "required": true }, { "type": "string", "description": "对象键", "name": "object_key", "in": "query", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "Bad Request", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "Internal Server Error", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } }, "/files/upload": { "post": { "description": "上传小文件到指定的存储桶", "consumes": [ "multipart/form-data" ], "produces": [ "application/json" ], "tags": [ "文件操作" ], "summary": "上传文件 (简单上传)", "parameters": [ { "type": "string", "description": "存储桶名称", "name": "bucket_name", "in": "formData", "required": true }, { "type": "file", "description": "要上传的文件", "name": "file", "in": "formData", "required": true } ], "responses": { "200": { "description": "上传成功消息", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "400": { "description": "参数错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } }, "500": { "description": "服务器内部错误", "schema": { "type": "object", "additionalProperties": { "type": "string" } } } } } } }, "definitions": { "file-system_internal_api_requests.CompleteMultipartRequest": { "type": "object", "properties": { "bucket_name": { "type": "string" }, "object_key": { "type": "string" }, "parts": { "type": "array", "items": { "$ref": "#/definitions/file-system_internal_common.Part" } }, "upload_id": { "type": "string" } } }, "file-system_internal_api_requests.CreateBucketRequest": { "type": "object", "properties": { "bucket_name": { "type": "string" } } }, "file-system_internal_api_requests.DeleteBucketRequest": { "type": "object", "properties": { "bucket_name": { "type": "string" } } }, "file-system_internal_api_requests.DeleteFileRequest": { "type": "object", "properties": { "bucket_name": { "type": "string" }, "object_key": { "type": "string" } } }, "file-system_internal_api_requests.InitMultipartRequest": { "type": "object", "properties": { "bucket_name": { "type": "string" }, "object_key": { "type": "string" } } }, "file-system_internal_common.Part": { "type": "object", "properties": { "etag": { "type": "string" }, "partNumber": { "type": "integer", "format": "int32" } } }, "file-system_internal_domain_repository.FileInfo": { "type": "object", "properties": { "etag": { "type": "string" }, "key": { "type": "string" }, "lastModified": { "type": "string" }, "size": { "type": "integer", "format": "int64" } } }, "file-system_internal_domain_repository.ListFilesResult": { "type": "object", "properties": { "files": { "type": "array", "items": { "$ref": "#/definitions/file-system_internal_domain_repository.FileInfo" } }, "nextContinuationToken": { "type": "string" } } } } }