> +      checkNotNull(blob, "blob");
> +      HttpRequest request = processor.apply(Invocation.create(createMethod,
> +         ImmutableList.<Object>of(container, blobToObject.apply(blob))));
> +      return cleanRequest(signForTemporaryAccess(request, timeInSeconds));
> +   }
> +
> +   private HttpRequest signForTemporaryAccess(HttpRequest request, long 
> timeInSeconds) {
> +      // Update the 'DATE' header
> +      final String expiration = 
> String.valueOf(System.currentTimeMillis()/1000 + timeInSeconds);
> +      HttpRequest req = request.toBuilder().replaceHeader(HttpHeaders.DATE, 
> expiration).build();
> +      final String signature = 
> authSigner.sign(authSigner.createStringToSign(req));
> +      req = req.toBuilder()
> +         .addQueryParam("Signature", signature)
> +         .addQueryParam(HttpHeaders.EXPIRES, expiration)
> +         .addQueryParam("AWSAccessKeyId", identity)
> +         .build();

Could you save one `toBuilder` call here using something like
```
Builder updatedRequestBuilder = 
request.toBuilder().replaceHeader(HttpHeaders.DATE, expiration);
String signature = 
authSigner.sign(authSigner.createStringToSign(updatedRequestBuilder.build()));
return updatedRequestBuilder.addQueryParam("Signature", signature)...build();
```
?

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/71/files#r5336047

Reply via email to