Chunking of custom algorithms for Machine learning and Optimization
Chunking the custom algorithm .zip file is needed because of the 5
MB upload limit. You must break larger files into smaller chunks before uploading. This topic
provides details on handling larger files.
For example, when uploading a compressed file (.zip or .tar) of 15 MB, it must be split into smaller chunks of 5 MB each, as each request can handle 5 MB at a time.
Since 15 MB ÷ 5 MB = 3, the file is divided into 3 chunks. The total file size in bytes is:
15MB × 1024 × 1024 = 15,728,640 bytes
Each request should increment the ChunkNumber from 1 to 3 while keeping all other properties the same. After the final chunk is sent, the custom algorithm's status is updated automatically.
All chunks must be 5 MB except for the last one. The last chunk can be smaller if its size is not a multiple of 5 MB.
Keep these key points in mind:
- The ChunkNumber must be incremented for each request. For example, 1, 2, 3, and so on.
- TotalSize represents the full file size. This is 15 MB in bytes.
- The ChunkSize is fixed at 5 MB (5 × 1024 × 1024 = 5242880 bytes).
- The TotalChunksNumber is 3. This number, indicate the total parts of the file.
Once all chunks are uploaded, the custom algorithm's status updates automatically.
Chunk 1 (First 5 MB)
curl --location 'https://<BaseURL>/<TenantID>/COLEMANAI/optimization/model/v1/customalgorithms/<CustomAlgorithmName>/code' \
--header 'X-Infor-TenantId: <TenantID> \
--form 'data=@"example.zip"' \
--form 'totalSize="15728640"' \
--form 'chunkSize="5242880"' \
--form 'chunkNumber="1"' \
--form 'totalChunksNumber="3"' \
--form 'fileName="example.zip"' \
--form 'encoding="identity"'
Chunk 2 (Second 5 MB)
curl --location 'https://<BaseURL>/<TenantID>/COLEMANAI/optimization/model/v1/customalgorithms/<CustomAlgorithmName>/code' \
--header 'X-Infor-TenantId: <TenantID> \
--form 'data=@"example.zip"' \
--form 'totalSize="15728640"' \
--form 'chunkSize="5242880"' \
--form 'chunkNumber="2"' \
--form 'totalChunksNumber="3"' \
--form 'fileName="example.zip"' \
--form 'encoding="identity"'
Chunk 3 (Final 5 MB, completes the upload)
curl --location 'https://<BaseURL>/<TenantID>/COLEMANAI/optimization/model/v1/customalgorithms/<CustomAlgorithmName>/code' \
--header 'X-Infor-TenantId: <TenantID> \
--form 'data=@"example.zip"' \
--form 'totalSize="15728640"' \
--form 'chunkSize="5242880"' \
--form 'chunkNumber="3"' \
--form 'totalChunksNumber="3"' \
--form 'fileName="example.zip"' \
--form 'encoding="identity"'