info
Prerequisites - before you begin, please ensure:
Overview
An IBC S6 API transaction currently supports a maximum upload size of 50MB. To upload objects larger than this limit, objects have to be split into 50MB chunks and uploaded individually, placing an implementation and management overhead on developers and client tools to track and manage these chunks.
To make it easier for developers and client tools to upload large objects to IBC S6, we've developed what we call IBC S6 SDK manifests. The SDK manifest is comprised of two main parts:
- An implementation within each Ionburst Cloud SDK to chunk large objects and manage the upload of each chunk to IBC S6
- A metadata object that tracks important information about each chunk; their IDs, checksum, ordinality etc.
To keep the manifest implementation simple, and to ensure the amount of information held by IBC S6 about a given object is minimised, this manifest metadata object is also stored within IBC S6 using the external reference (object ID) of the request.
This allows the chunks comprising a large object to be tracked, while avoiding any overhead on the client to track and manage them. It also means that to retrieve a large object, the external reference can be passed to the SDK manifest function, which will in turn retrieve and reconstruct the chunks.
The SDK manifests feature is similar to the multipart upload concept used by object stores like Amazon S3.
Getting Started
In this tutorial we will provide examples and code snippets of how to use the new manifest feature to upload large objects to IBC S6:
- Uploading large objects with
ioncli
- Uploading large objects with the Ionburst Cloud Go SDK
ioncli
In this example, we will upload our large object, my-large-file.png
to IBC S6 using the ioncli mput
command.
Uploading my-large-file.png
with ioncli
:
Example output:
Go SDK
The following example program shows how the Ionburst Cloud Go SDK PutManifest
methods can be used:
Example output: