JCS-pub/docs/JCS_pub_API.md

6.5 KiB
Raw Blame History

JCS-pub API

跳转回README.md 中文 英文

1 桶相关

1.1 创建桶

请求
POST application/json /v1/bucket/create
Query
Body
{
    "userID": 1,
    "name": "bkt1"  //桶名
}
响应示例
{
    "code": "OK",
    "message": "",
    "data": {
        "bucket": {
            "bucketID": 1,   // 桶ID
            "name": "bkt1"   // 桶名
        }
    }
}

1.2 根据名字查询桶

1.3 查询所有桶

1.4 删除桶

2 包相关

2.1 创建包

2.2 根据桶名和包名查询包

2.3 获取桶里所有的包

2.4 删除包

3 对象相关

3.1 批量上传对象

请求
POST multipart/form-data; boundary=xxxxxxx /v1/object/upload
Query
Body

被boundary分隔的多个part第一个part的name必须是info格式如下

{
  "packageID": 1, // PackageID使用从创建Package接口返回的ID
  "affinity": 1 // 文件优先上传到哪个存储空间,可以不填。
}

之后的每一个part都是一个文件name为filesfilename为文件路径需要进行URL编码。 一个例子:

POST /object/upload HTTP/1.1
User-Agent: PostmanRuntime/7.29.0
Accept: */*
Postman-Token: c12fa8b5-d902-46f3-b104-028effa0d531
Host: localhost:7890
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: multipart/form-data; boundary=-----------------------------818270992847011232305151
Content-Length: 1649

-----------------------------818270992847011232305151
Content-Disposition: form-data; name="info"

{
	"userID": 1,
	"packageID": 1
}
-----------------------------818270992847011232305151
Content-Disposition: form-data; name="files"; filename="test.txt"
Content-Type: text/plain

testdata
-----------------------------818270992847011232305151
Content-Disposition: form-data; name="files"; filename="a%2Fb%2Ftest2.txt"

testdata2
-----------------------------818270992847011232305151--
响应示例
{
    "code": "OK",
    "message": "",
    "data": {
        "uploadeds": [
            {
                "objectID": 7,
                "packageID": 1,
                "path": "test.txt",
                "size": "123456",
                "fileHash": "xxxxxxxxxx",
                "redundancy": {
                    "type": "none"
                },
                "createTime": "2024-11-05T11:06:28+08:00",
                "updateTime": "2025-01-10T09:15:39.4452196+08:00"
            },
            {
                "objectID": 8,
                "packageID": 1,
                "path": "a/b/test2.txt",
                "size": "123456",
                "fileHash": "xxxxxxxxxx",
                "redundancy": {
                    "type": "none"
                },
                "createTime": "2024-11-05T11:06:28+08:00",
                "updateTime": "2025-01-10T09:15:39.4452196+08:00"
            }
        ]
    }
}

3.2 下载对象

请求
GET application/json /v1/bucket/download
Query

- objectIDint64 - offsetint64偏移量 - lengthint64读取长度。不存在则读取整个对象

Body
响应示例

如果请求成功那么Content-Type将会是application/octet-stream响应体就是文件数据。 如果失败那么Content-Type将会是application/json响应体格式如下

{
    "code": "OperationFailed",
    "message": "xxxxxxxx",
    "data": null
}

3.3 根据路径下载对象

3.4 根据路径查询对象

3.5 获取包中所有的对象

3.6 批量移动对象

3.7 批量删除对象

3.8 批量复制对象

3.9 创建分片上传对象

3.10 上传分片

3.11 合并分片

4 用户存储空间相关

4.1 创建用户存储空间配置

4.2 更新用户存储空间配置

4.3 删除用户存储空间配置

4.4 获取用户存储空间配置

4.5 测试用户存储空间配置

4.6 从用户存储空间上传到一个新的包

4.7 下载一个包到用户存储空间

5 用户存储空间同步相关

5.1 创建同步任务

5.2 获取同步任务

5.3 取消同步任务