多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Project repository storage moves API > 原文:[https://docs.gitlab.com/ee/api/project_repository_storage_moves.html](https://docs.gitlab.com/ee/api/project_repository_storage_moves.html) * [Retrieve all project repository storage moves](#retrieve-all-project-repository-storage-moves) * [Retrieve all repository storage moves for a project](#retrieve-all-repository-storage-moves-for-a-project) * [Get a single project repository storage move](#get-a-single-project-repository-storage-move) * [Get a single repository storage move for a project](#get-a-single-repository-storage-move-for-a-project) * [Schedule a repository storage move for a project](#schedule-a-repository-storage-move-for-a-project) # Project repository storage moves API[](#project-repository-storage-moves-api-core-only "Permalink") 在 GitLab 13.0 中[引入](https://gitlab.com/gitlab-org/gitlab/-/merge_requests/31285) . 项目存储库存储可以移动. 要使用 API​​检索项目存储库存储移动,您必须以管理员[身份进行身份验证](README.html#authentication) . ## Retrieve all project repository storage moves[](#retrieve-all-project-repository-storage-moves "Permalink") ``` GET /project_repository_storage_moves ``` 默认情况下,因为 API 结果是[分页的](README.html#pagination) ,所以`GET`请求一次返回 20 个结果. 请求示例: ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_repository_storage_moves" ``` 响应示例: ``` [ { "id": 1, "created_at": "2020-05-07T04:27:17.234Z", "state": "scheduled", "source_storage_name": "default", "destination_storage_name": "storage2", "project": { "id": 1, "description": null, "name": "project1", "name_with_namespace": "John Doe2 / project1", "path": "project1", "path_with_namespace": "namespace1/project1", "created_at": "2020-05-07T04:27:17.016Z" } ] ``` ## Retrieve all repository storage moves for a project[](#retrieve-all-repository-storage-moves-for-a-project "Permalink") ``` GET /projects/:project_id/repository_storage_moves ``` 默认情况下,因为 API 结果是[分页的](README.html#pagination) ,所以`GET`请求一次返回 20 个结果. Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `project_id` | integer | yes | 项目编号 | 请求示例: ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves" ``` 响应示例: ``` [ { "id": 1, "created_at": "2020-05-07T04:27:17.234Z", "state": "scheduled", "source_storage_name": "default", "destination_storage_name": "storage2", "project": { "id": 1, "description": null, "name": "project1", "name_with_namespace": "John Doe2 / project1", "path": "project1", "path_with_namespace": "namespace1/project1", "created_at": "2020-05-07T04:27:17.016Z" } ] ``` ## Get a single project repository storage move[](#get-a-single-project-repository-storage-move "Permalink") ``` GET /project_repository_storage_moves/:repository_storage_id ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `repository_storage_id` | integer | yes | 项目存储库存储移动的标识 | 请求示例: ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/project_repository_storage_moves/1" ``` 响应示例: ``` { "id": 1, "created_at": "2020-05-07T04:27:17.234Z", "state": "scheduled", "source_storage_name": "default", "destination_storage_name": "storage2", "project": { "id": 1, "description": null, "name": "project1", "name_with_namespace": "John Doe2 / project1", "path": "project1", "path_with_namespace": "namespace1/project1", "created_at": "2020-05-07T04:27:17.016Z" } ``` ## Get a single repository storage move for a project[](#get-a-single-repository-storage-move-for-a-project "Permalink") ``` GET /projects/:project_id/repository_storage_moves/:repository_storage_id ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `project_id` | integer | yes | 项目编号 | | `repository_storage_id` | integer | yes | 项目存储库存储移动的标识 | 请求示例: ``` curl --header "PRIVATE-TOKEN: <your_access_token>" "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves/1" ``` 响应示例: ``` { "id": 1, "created_at": "2020-05-07T04:27:17.234Z", "state": "scheduled", "source_storage_name": "default", "destination_storage_name": "storage2", "project": { "id": 1, "description": null, "name": "project1", "name_with_namespace": "John Doe2 / project1", "path": "project1", "path_with_namespace": "namespace1/project1", "created_at": "2020-05-07T04:27:17.016Z" } ``` ## Schedule a repository storage move for a project[](#schedule-a-repository-storage-move-for-a-project "Permalink") ``` POST /projects/:project_id/repository_storage_moves ``` Parameters: | Attribute | Type | Required | Description | | --- | --- | --- | --- | | `project_id` | integer | yes | 项目编号 | | `destination_storage_name` | string | yes | 目标存储分片的名称 | 请求示例: ``` curl --request POST --header "PRIVATE_TOKEN: <your_access_token>" --header "Content-Type: application/json" \ --data '{"destination_storage_name":"storage2"}' "https://gitlab.example.com/api/v4/projects/1/repository_storage_moves" ``` 响应示例: ``` { "id": 1, "created_at": "2020-05-07T04:27:17.234Z", "state": "scheduled", "source_storage_name": "default", "destination_storage_name": "storage2", "project": { "id": 1, "description": null, "name": "project1", "name_with_namespace": "John Doe2 / project1", "path": "project1", "path_with_namespace": "namespace1/project1", "created_at": "2020-05-07T04:27:17.016Z" } ```