# RUS **Repository Path**: dz-io/rus ## Basic Information - **Project Name**: RUS - **Description**: Google/Docker可续传上传服务器实现 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-12-05 - **Last Updated**: 2025-12-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RUS Google/Docker可续传上传服务器实现 ## 来历 Docker 用了这东西,所以... ## 安装 打包镜像然后启动 ```bash docker build -t rus https://gitee.com/dz-io/rus.git docker run -d -p 8099:80 --name rus -v /tmp/docker/blob:/data rus ``` ## 使用 > 有一些类似的实现,比如[Google 的](https://developers.google.cn/android-publisher/upload?hl=zh-cn#resumable)、[YouTube 的](https://developers.google.cn/youtube/v3/guides/using_resumable_upload_protocol?hl=zh-cn)、[Docker 的](https://distribution.github.io/distribution/spec/api/#starting-an-upload) 1. 向服务器发送 POST 以便开启会话,以下是示例 ```log POST / HTTP/1.1 Host: 127.0.0.1:8099 User-Agent: curl/8.10.1 Accept: */* Authorization: Bearer AUTH_TOKEN ``` 其中 - Authorization - 请求的授权令牌。 2. 请求成功后,服务器会返回 202 状态码,并在 Location 响应头里附带会话 URI ```log HTTP/1.1 202 Accepted Location: /38369104-077b-483f-80c5-6b0534915cc4 Server: RUS/1.0 node/20.17.0 Date: Sun, 03 Nov 2024 14:52:56 GMT Connection: keep-alive Keep-Alive: timeout=5 Content-Length: 0 ``` 3. 上传文件到 Location 所指的 URI ```log PATCH /Test1 HTTP/1.1 Authorization: Bearer AUTH_TOKEN Content-Length: CONTENT_LENGTH Content-Type: CONTENT_TYPE BINARY_FILE_DATA ``` 其中 - Authorization - 请求的授权令牌。 - Content-Length - 您要上传的文件的大小。此值应与第 1 步中 X-Upload-Content-Length HTTP 请求标头的值相同。 - Content-Type - 您要上传的文件的 MIME 类型。此值应与第 1 步中 X-Upload-Content-Type HTTP 请求标头的值相同。 ## TODO - 授权功能