@Override public UploadPartResponse uploadPart(UploadPartRequest request) { LOG.trace("Called uploadPart"); request = UploadPartConverter.interceptRequest(request); com.oracle.bmc.http.internal.WrappedInvocationBuilder ib = UploadPartConverter.fromRequest(client, request); com.google.common.base.Function<javax.ws.rs.core.Response, UploadPartResponse> transformer = UploadPartConverter.fromResponse(); ib.property( com.oracle.bmc.http.internal.AuthnClientFilter.SIGNING_STRATEGY_PROPERTY_NAME, com.oracle.bmc.http.signing.SigningStrategy.EXCLUDE_BODY); int attempts = 0; while (true) { try { javax.ws.rs.core.Response response = client.put(ib, request.getUploadPartBody(), request); return transformer.apply(response); } catch (com.oracle.bmc.model.BmcException e) { if (++attempts < MAX_IMMEDIATE_RETRIES_IF_USING_INSTANCE_PRINCIPALS && canRetryRequestIfRefreshableAuthTokenUsed(e)) { continue; } else { throw e; } } } }
@Override public UploadPartResponse apply(UploadPartRequest request) { InputStream stream = request.getUploadPartBody(); BmcException ex = null; for (int i = 1; i <= MAX_RETRIES; i++) { try { return service.uploadPart(request); } catch (BmcException e) { ex = e; if (canRetry(stream, e, i)) { request = UploadPartRequest.builder() .copy(request) .uploadPartBody( ((DuplicatableInputStream) stream).duplicate()) .build(); } else { break; } } } throw ex; } };
client.put( ib, interceptedRequest.getUploadPartBody(), interceptedRequest, onSuccess,
Validate.notNull(request.getUploadId(), "uploadId is required"); Validate.notNull(request.getUploadPartNum(), "uploadPartNum is required"); Validate.notNull(request.getUploadPartBody(), "uploadPartBody is required");
/** * Copy method to populate the builder with values from the given instance. * @return this builder instance */ public Builder copy(UploadPartRequest o) { namespaceName(o.getNamespaceName()); bucketName(o.getBucketName()); objectName(o.getObjectName()); uploadId(o.getUploadId()); uploadPartNum(o.getUploadPartNum()); contentLength(o.getContentLength()); uploadPartBody(o.getUploadPartBody()); opcClientRequestId(o.getOpcClientRequestId()); ifMatch(o.getIfMatch()); ifNoneMatch(o.getIfNoneMatch()); expect(o.getExpect()); contentMD5(o.getContentMD5()); invocationCallback(o.getInvocationCallback()); return this; }