この記事はOracle Cloud Advent Calendar 2018 - Adventarの12月8日の記事として書かれています。
大きなファイルのアップロードにはマルチパートアップロードが有効です。今回はOracle Cloudのオブジェクトストレージにファイルをマルチパートアップロードしてみます。
Webのコンソールからはマルチパートアップロードできないため、Oracle Cloud Infrastructure (OCI) CLI を使用します。 OCI CLIでマルチパート・アップロードするには事前にバケットを作成し、バケット名(下図の赤四角)とバケットが所属するNamespace(下図の紫角丸四角)が必要です。
マルチパートアップロードにはoci os object put
コマンドを使用します。パラメータとして以下を指定します。
- ネームスペースを
-ns
- バケット名を
-bn
- アップロードするファイルを
--file
- オブジェクト・パーツのサイズを
--part-size
- 並列度を
--parallel-upload-count
sandbox.7z
ファイルを20MB ごとにオブジェクト・パーツへ分割し、4並行でアップロードしてみます。
> oci os object put -ns oxxxr -bn Cxxxt --file sandbox.7z --part-size 20 --parallel-upload-count 4 Upload ID: 7xxxxxxe-8xx0-5xxc-fxxb-9xxxxxxxxxxb Split file into 12 parts for upload. Uploading object [####################################] 100% { "etag": "7xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4", "last-modified": "Sat, 24 Nov 2018 08:23:19 GMT", "opc-multipart-md5": "VC+BNIk9Xh3T7+rf9Ss4pQ==-12" }
実行するとUploading object [------------------------------------] 0%
で止まります。アップロードの進捗はパーツごとにしか更新されないようです。
ファイルがアップロードされたことをコンソールで確認してみます。
sandbox.7zファイルが表示されています。