You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Andrew Gaul (JIRA)" <ji...@apache.org> on 2018/01/04 08:55:00 UTC

[jira] [Created] (JCLOUDS-1368) GCS cannot upload multipart file larger than 1 GB

Andrew Gaul created JCLOUDS-1368:
------------------------------------

             Summary: GCS cannot upload multipart file larger than 1 GB
                 Key: JCLOUDS-1368
                 URL: https://issues.apache.org/jira/browse/JCLOUDS-1368
             Project: jclouds
          Issue Type: Bug
          Components: jclouds-blobstore
    Affects Versions: 2.0.3
            Reporter: Andrew Gaul
            Assignee: Andrew Gaul


When uploading a file:

{code:java}
long size = 33L * (32L * 1024L * 1024L);
ByteSource byteSource = TestUtils.randomByteSource().slice(0, size);
blobStore.createContainerInLocation(null, containerName);
Blob blob = blobStore.blobBuilder(blobName)
      .payload(byteSource)
      .contentLength(size)
      .build();
blobStore.putBlob(containerName, blob, PutOptions.Builder.multipart());
{code}

I see an error:

{noformat}
org.jclouds.http.HttpResponseException: command: POST https://www.googleapis.com/storage/v1/b/gaul-blobstore0/o/large-blob/compose HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "invalid",
    "message": "The number of source components provided (33) exceeds the maximum (32)"
   }
  ],
  "code": 400,
  "message": "The number of source components provided (33) exceeds the maximum (32)"
 }
}
]
{noformat}

This is due to the wonky {{MultipartUploadSlicingAlgorithm}} slicing into (31) 32 MB parts then creating a remainder 64 MB part that {{BaseBlobStore.putMultipartBlob}} does not account for.  This interface seems stupid and better to create (32) 33 MB parts.  Originally reported at:

https://stackoverflow.com/questions/47048264/the-number-of-source-components-provided-78-exceeds-the-maximum-32



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)