在jclouds中生成GET / PUT URl时,如何设置aws-s3的头文件,如果可能请提供示例参考

时间:2015-01-06 11:41:30

标签: java jclouds

以下是我的要求。

1)我需要使用jclouds为aws-s3生成PUT url。       我已成功生成以下代码的网址。

   HttpRequest request = context.getSigner().signPutBlob(bucketName, blob, expriyTime);

   url = request.getEndpoint();

   https://buketName.s3.amazonaws.com/test/newFile.txt?Expires=1422036847&AWSAccessKeyId=XXXXXXXXXX&Signature=YYYYYYYYYYYYYYYYYYYYY.

但我希望URL在查询字符串中包含服务器端加密参数。  https://buketName.s3.amazonaws.com/test/newFile.txt?Expires=1422036847&x-amz-server-side-encryption=AES256&AWSAccessKeyId=XXXXXXXXXX&Signature=YYYYYYYYYYYYYYYYYYYYY

但在标题中我需要发送标题,如“x-amz-copy-source”,“x-amz-server-side-encryption”。请帮助我如何使用jclouds实现这一目标。

1 个答案:

答案 0 :(得分:0)

您可以通过调用toBuilder()方法轻松自定义生成的请求:

HttpRequest request = context.getSigner().signPutBlob(bucketName, blob, expriyTime);
HttpRequest withParams = request.toBuilder()
    .addQueryParam("x-amz-server-side-encryption", "AES256")
    .build();