The first step in creating a bulk GET job is to issue a Create Bulk GET request (see
page 149). The Create Bulk GET request specifies the bucket name and a list of object names.
The client should then issue a Get Job Chunks Ready for Processing request (see
page 204) using the job ID. The response is in the same format as the Create Bulk GET response, but it only lists chunks that are ready for the client to retrieve. If the list is empty, then the BlackPearl system provides an HTTP Retry-After header with the number of seconds the client should wait before issuing the request again.
The client may need to issue multiple GET requests for a single object if it has been broken up into multiple pieces due to its large size. For example, in the Create Bulk GET request Sample Response, the BlackPearl system split the object “test.aaf” into one 100 GB part and one 50 GB part. If you want to retrieve test.aaf, you must GET the first 100 GB, specifying the job ID and an offset of 0, followed by getting the remaining 50 GB, specifying the job ID and an offset of 107374182400 (since 100 GB = 100*(2^30)).
For each job chunk, the client should issue a Get Job Chunks Ready for Processing request (see
page 204) using the job ID. This will allocate a working window of job chunks, if possible, and return a list of the job chunks that the client can upload. The client should PUT all of the object parts from the list of job chunks returned and repeat this process until all chunks are transferred. Chunks must be sent by the client in order; however, objects within a given chunk may be sent in any order.
If the Get Job Chunks Ready for Processing request (see
page 204) returns an empty list, then the server's cache is currently saturated and the client must wait before sending more data. The client should wait the number of seconds specified in the Retry-After HTTP response header.
To process a bulk VERIFY job, issue a Create VERIFY Job request (see
page 163). The Create VERIFY Job request specifies the bucket name and a list of object names. The job reads the data for each object from the permanent data store and verifies that the CRC of the data read matches the expected CRC. No additional requests are required.