6.3. 将内容上传到 Satellite 服务器
您可以使用 Satellite API 将大型文件上传并导入到您的 Satellite 服务器。这个过程涉及四个步骤:
- 创建上传请求。
- 上传内容。
- 导入内容。
- 删除上传请求。
您可以上传的最大文件大小为 2 MB。有关上传大量内容的详情,请参考 API 流程。
流程
为变量
name
分配软件包名称:请求示例:
export name=jq-1.6-2.el7.x86_64.rpm
$ export name=jq-1.6-2.el7.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件的校验和分配给变量
checksum
:请求示例:
export checksum=$(sha256sum $name|cut -c 1-65)
$ export checksum=$(sha256sum $name|cut -c 1-65)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件大小分配给变量
大小
:请求示例:
export size=$(du -bs $name|cut -f 1)
$ export size=$(du -bs $name|cut -f 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个上传请求,以使用
大小和
校验和
返回请求的上传 ID。请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中 76,本例中为 Repository ID 示例。
请求示例:
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将上传 ID 分配给变量
upload_id
:export upload_id=37eb5900-597e-4ac3-9bc5-2250c302fdc4
$ export upload_id=37eb5900-597e-4ac3-9bc5-2250c302fdc4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 分配您要上传到变量
路径的软件包路径
:export path=/root/jq/jq-1.6-2.el7.x86_64.rpm
$ export path=/root/jq/jq-1.6-2.el7.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上传您的内容。确保在上传数据时使用正确的 MIME 类型。API 对 Satellite 的请求使用
application/json
MIME 类型,除非另有说明。组合上传 ID、MIME 类型和其他参数以上传内容。请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将内容上传到 Satellite 服务器后,您需要将它导入到适当的存储库中。在完成此步骤前,Satellite 服务器不会检测到新内容。
请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功上传并导入内容后,您可以删除上传请求。这释放在上传过程中使用的任何临时磁盘空间。
请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.1. 上传大于 2 MB 的内容 复制链接链接已复制到粘贴板!
以下示例演示了如何将大型文件分成块,创建上传请求,上传单个文件,将它们导入到 Satellite,然后删除上传请求。请注意,本示例使用示例内容、主机名、用户名、存储库 ID 和文件名。
API 流程
为变量
name
分配软件包名称:export name=bpftool-3.10.0-1160.2.1.el7.centos.plus.x86_64.rpm
$ export name=bpftool-3.10.0-1160.2.1.el7.centos.plus.x86_64.rpm
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件的校验和分配给变量
checksum
:export checksum=$(sha256sum $name|cut -c 1-65)
$ export checksum=$(sha256sum $name|cut -c 1-65)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将文件大小分配给变量
大小
:export size=$(du -bs $name|cut -f 1)
$ export size=$(du -bs $name|cut -f 1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下命令创建新的上传请求,并使用
大小和
校验和
返回请求的上传 ID。请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 其中 76,本例中为 Repository ID 示例。
输出示例
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将上传 ID 分配给变量
upload_id
:export upload_id=37eb5900-597e-4ac3-9bc5-2250c302fdc4
$ export upload_id=37eb5900-597e-4ac3-9bc5-2250c302fdc4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以 2MB 的块分割文件:
split \ --bytes 2MB \ --numeric-suffixes \ --suffix-length=1 \ bpftool-3.10.0-1160.2.1.el7.centos.plus.x86_64.rpm bpftool
$ split \ --bytes 2MB \ --numeric-suffixes \ --suffix-length=1 \ bpftool-3.10.0-1160.2.1.el7.centos.plus.x86_64.rpm bpftool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看文件块:
ls -l bpftool[0-9]
$ ls -l bpftool[0-9]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例:
-rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool0 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool1 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool2 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool3 -rw-r--r--. 1 root root 868648 Mar 31 14:15 bpftool4
-rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool0 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool1 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool2 -rw-r--r--. 1 root root 2000000 Mar 31 14:15 bpftool3 -rw-r--r--. 1 root root 868648 Mar 31 14:15 bpftool4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将分割文件的前缀分配给变量路径。
export path=/root/tmp/bpftool
$ export path=/root/tmp/bpftool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 上传文件块。偏移从第一个块的 0 字节开始,并为每个文件增加 2000000 字节。请注意使用 offset 参数,以及如何与文件大小相关。另请注意,索引在路径变量后使用,如 ${path}0, ${path}1。
请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将完整上传到存储库:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 删除上传请求:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
6.3.2. 上传重复内容 复制链接链接已复制到粘贴板!
您可以重复使用 Satellite 中的现有内容,而不是通过 API 将重复内容上传到 Satellite。
API 流程
将内容上传到 Satellite:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 调用将返回内容单元 ID 而不是上传 ID,如下所示:
{"content_unit_href":"/pulp/api/v3/content/file/files/c1bcdfb8-d840-4604-845e-86e82454c747/"}
{"content_unit_href":"/pulp/api/v3/content/file/files/c1bcdfb8-d840-4604-845e-86e82454c747/"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您可以直接复制此输出并调用导入上传,将内容添加到存储库中:
API 响应
请注意,调用从 使用 upload_id
更改为使用 content_unit_id
。