5.3. 将内容上传到卫星服务器
本节概述了如何使用 Satellite 6 API 将大型文件上传到卫星服务器。这个过程涉及四个步骤:
- 创建上传请求。
- 上传内容。
- 导入内容。
- 删除上传请求。
您可以上传的最大文件大小为 2MB。有关上传较大的内容的详情,请参考 上传内容大大于 2 MB。
流程
创建上传请求。确保修改示例参数以适合您的部署。
请求示例:
curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request POST --insecure \ --user sat_username:sat_password --data "{}" \ https://satellite.example.com/katello/api/repositories/3/content_uploads$ curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request POST --insecure \ --user sat_username:sat_password --data "{}" \ https://satellite.example.com/katello/api/repositories/3/content_uploadsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令返回
upload_id。响应示例:
{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}{"upload_id":"0be156b1-f373-4cad-89d0-924f8f4491d2","_href":"/pulp/api/v2/content/uploads/0be156b1-f373-4cad-89d0-924f8f4491d2/"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意
upload_id用于上传内容。上传内容。确保在上传数据时使用正确的 MIME 类型。API 将
application/jsonMIME 类型用于大多数对 Satellite 6 的请求。将upload_id、MIME 类型和其他参数合并在一起,以上传内容。请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将内容上传到卫星服务器后,您需要将其导入到相应的存储库。完成此步骤后,卫星服务器才会检测到新内容。
请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 成功上传并导入您的内容后,您可以删除上传请求。这样可在上传过程中释放任何数据的临时磁盘空间。
请求示例:
curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request DELETE --insecure \ --user sat_username:sat_password --data "{}" \ https://satellite.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2$ curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request DELETE --insecure \ --user sat_username:sat_password --data "{}" \ https://satellite.example.com/katello/api/repositories/3/content_uploads/0be156b1-f373-4cad-89d0-924f8f4491d2Copy to Clipboard Copied! Toggle word wrap Toggle overflow
上传内容大大于 2 MB
以下示例演示了如何将大型文件分割为块,创建上传请求,上传单个文件,将其导入卫星,然后删除上传请求。请注意,本例使用示例内容、主机名、用户名和文件名。
使用以下示例将文件分成 2MB 块:
split --bytes 2MB --numeric-suffixes --suffix-length=1 \ theforeman-foreman-5.0.1.tar.gz foreman_module.
$ split --bytes 2MB --numeric-suffixes --suffix-length=1 \ theforeman-foreman-5.0.1.tar.gz foreman_module.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看生成的文件:
ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.*
$ ls -la theforeman-foreman-5.0.1.tar.gz foreman_module.* -rw-r--r--. 1 root root 50000 Nov 4 04:42 foreman_module.0 -rw-r--r--. 1 root root 32928 Nov 4 04:42 foreman_module.1 -rw-r--r--. 1 root root 82928 Nov 4 04:41 theforeman-foreman-5.0.1.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 创建上传请求。
请求示例:
curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request POST --insecure --user sat_username:sat_password --data "{}" \ https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads$ curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request POST --insecure --user sat_username:sat_password --data "{}" \ https://ibm-vm01.example.com/katello/api/repositories/2/content_uploadsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 响应示例:
{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}{"upload_id":"9585528f-07ad-4bb1-9c80-ccece249b2b7","_href":"/pulp/api/v2/content/uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7/"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意
upload_id用于上传内容。将文件块上传到卫星服务器。请注意,在这个示例中使用
offset参数,以及如何与文件大小相关:请求示例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将完整上传导入到存储库:
curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request PUT --insecure --user sat_username:sat_password \ --data "{\"upload_ids\":[\"9585528f-07ad-4bb1-9c80-ccece249b2b7\"]}" \ https://ibm-vm01.example.com/katello/api/repositories/2/import_uploads$ curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request PUT --insecure --user sat_username:sat_password \ --data "{\"upload_ids\":[\"9585528f-07ad-4bb1-9c80-ccece249b2b7\"]}" \ https://ibm-vm01.example.com/katello/api/repositories/2/import_uploadsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 删除上传请求:
curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request DELETE --insecure --user sat_username:sat_password --data "{}" \ https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7$ curl --header "Accept:application/json" \ --header "Content-Type:application/json" \ --request DELETE --insecure --user sat_username:sat_password --data "{}" \ https://ibm-vm01.example.com/katello/api/repositories/2/content_uploads/9585528f-07ad-4bb1-9c80-ccece249b2b7Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在卫星服务器上,检查传输的文件:
ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz
# ls -la /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz -rw-r--r--. 1 apache apache 82928 Nov 4 04:55 /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow 通过比较验证初始文件是否与传输相同:
cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz \ theforeman-foreman-5.0.1.tar.gz
$ cmp /var/lib/pulp/content/puppet_module/theforeman-foreman-5.0.1.tar.gz \ theforeman-foreman-5.0.1.tar.gzCopy to Clipboard Copied! Toggle word wrap Toggle overflow