6.3. Satellite Server へのコンテンツのアップロード
Satellite API を使用して、大きなファイルを Satellite Server にアップロードおよびインポートできます。このプロセスでは、4 つの手順が含まれます。
- アップロード要求を作成します。
- コンテンツをアップロードします。
- コンテンツをインポートします。
- アップロード要求を削除します。
アップロードできるファイルの最大サイズは 2 MB です。大容量のコンテンツのアップロードに関する情報は、API の手順 を参照してください。
手順
パッケージ名を変数
名
に割り当てます。要求例:
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 ファイルのチェックサムを変数
チェックサム
に割り当てます。要求例:
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 size
とchecksum
を使用して、リクエストのアップロード ID を返すアップロードリクエストを作成します。要求例:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 今回の場合は、76 はリポジトリー ID の例です。
要求例:
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数
upload_id
にアップロード 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 Server にコンテンツをアップロードした後に、適切なリポジトリーにそのコンテンツをインポートする必要があります。この手順を完了するまで、Satellite Server ではこの新しいコンテンツは認識されません。
要求例:
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 の手順
パッケージ名を変数
名
に割り当てます。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 ファイルのチェックサムを変数
チェックサム
に割り当てます。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 はリポジトリー ID の例です。
出力例
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
{"upload_id":"37eb5900-597e-4ac3-9bc5-2250c302fdc4"}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 変数
upload_id
にアップロード 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. 重複コンテンツのアップロード リンクのコピーリンクがクリップボードにコピーされました!
API 経由で Satellite に重複したコンテンツをアップロードする代わりに、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
の使用に変わることに注意してください。