addUploadPart method

Future<UploadPart> addUploadPart({
  1. required String uploadId,
  2. required Uint8List data,
})

Add a part (<= 64 MB) to an Upload.

Implementation

Future<UploadPart> addUploadPart({
  required String uploadId,
  required Uint8List data,
}) async {
  final uri = baseUrl.resolve('uploads/$uploadId/parts');

  // Use multipart form field named "data".
  final req = http.MultipartRequest('POST', uri)
    ..headers.addAll(getHeaders({}) ?? {})
    ..files.add(http.MultipartFile.fromBytes(
      'data',
      data,
      filename: 'part.bin',
      contentType: MediaType.parse('application/octet-stream'),
    ));

  final streamed = await httpClient.send(req);
  final res = await http.Response.fromStream(streamed);

  if (res.statusCode == 200) {
    return UploadPart.fromJson(jsonDecode(res.body));
  }
  throw OpenAIRequestException.fromHttpResponse(res);
}