public String createUploadUrl(String successPath, UploadOptions uploadOptions) {
if (successPath == null) {
throw new NullPointerException("Success path must not be null.");
}
CreateUploadURLRequest request = new CreateUploadURLRequest();
request.setSuccessPath(successPath);
if (uploadOptions.hasMaxUploadSizeBytesPerBlob()) {
request.setMaxUploadSizePerBlobBytes(uploadOptions.getMaxUploadSizeBytesPerBlob());
}
if (uploadOptions.hasMaxUploadSizeBytes()) {
request.setMaxUploadSizeBytes(uploadOptions.getMaxUploadSizeBytes());
}
if (uploadOptions.hasGoogleStorageBucketName()) {
request.setGsBucketName(uploadOptions.getGoogleStorageBucketName());
}
byte[] responseBytes;
try {
responseBytes = ApiProxy.makeSyncCall(PACKAGE, "CreateUploadURL", request.toByteArray());
} catch (ApiProxy.ApplicationException ex) {
switch (BlobstoreServiceError.ErrorCode.valueOf(ex.getApplicationError())) {
case URL_TOO_LONG:
throw new IllegalArgumentException("The resulting URL was too long.");
case INTERNAL_ERROR: