以下是我的要求。
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实现这一目标。
答案 0 :(得分:0)
您可以通过调用toBuilder()
方法轻松自定义生成的请求:
HttpRequest request = context.getSigner().signPutBlob(bucketName, blob, expriyTime);
HttpRequest withParams = request.toBuilder()
.addQueryParam("x-amz-server-side-encryption", "AES256")
.build();