Hi Andrew,

Thank you for your response. I will put it on my list of TODOs for sure.

Sincerely,
Ashkan




On 11/10/16, 5:19 PM, "Andrew Gaul" <g...@apache.org> wrote:

>jclouds does not allow arbitrary HTTP headers; we generally provide a
>mechanism to set any vendor-specific header in the provider
>implementation.  Specifically for User-Agent, we have an open feature
>request:
>
>https://issues.apache.org/jira/browse/JCLOUDS-819
>
>This is a well-scoped task and we would appreciate a pull request to
>include it.  Would you be willing to address this?
>
>On Thu, Nov 10, 2016 at 09:27:45PM +0000, Paya, Ashkan wrote:
>> Hello,
>> 
>> Can we use/overwrite HTTP headers such as USER_AGENT when invoking methods 
>> like BlobStore.putBlob() or we need to specify the BlobRequestSigner and use 
>> HttpClient instead?
>> For example, if I want to include the HTTP headers in the following 
>> operation:
>> 
>> 
>> ByteSource input = ByteSource.wrap(“BLAH”.getBytes(StandardCharsets.UTF_8));
>> 
>>  Blob blob = blobStore
>> 
>> 
>>     .blobBuilder(“NAME")
>> 
>> 
>>     .payload(input)
>> 
>> 
>>     .contentLength(input.size())
>> 
>> 
>>     .contentMD5(input.hash(Hashing.md5()))
>> 
>> 
>>     .contentType("text/plain")
>> 
>> 
>>     .build();
>> 
>> 
>>  blobStore.putBlob(container, blob);
>> 
>> 
>> Should I use the BlobRequestSigner as follows? Is this the right approach?
>> 
>> 
>>  final BlobRequestSigner signer = blobStoreInfo.getBlobRequestSigner();
>> 
>> 
>>  HttpRequest request = signer.signPutBlob(container, blob)
>> 
>> 
>>     .toBuilder()
>> 
>> 
>>     .addHeader(HttpHeaders.CONTENT_LENGTH,
>> 
>> 
>>         String.valueOf(input.size()))
>> 
>> 
>>     .addHeader(HttpHeaders.USER_AGENT, “custom agent")
>> 
>> 
>>     .payload(input)
>> 
>> 
>>     .build();
>> 
>> 
>>  HttpClient httpClient = blobStore.getContext().utils().http());
>> 
>> httpClient.invoke(request);
>> 
>> 
>> 
>> 
>> 
>> Thank you,
>> Ashkan
>
>-- 
>Andrew Gaul
>http://gaul.org/

Reply via email to