[英]How to build Amazon S3 Presigned PostPolicy for file uploading in Java SDK 2.0?
我需要生成一個AWS Signature v4簽名以上傳到s3,如下所示: https://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-post-example.html 。
我嘗試了很多例子,但是有錯誤
<Error>
<Code>InvalidAccessKeyId</Code>
<Message>The AWS Access Key Id you provided does not exist in our records.</Message>
<AWSAccessKeyId>ASIA2AKMADUN</AWSAccessKeyId>
<RequestId>E68a1B73B15</RequestId>
<HostId>fIG19S=</HostId>
</Error>
我嘗試使用minio-java
構建簽名,例如https://github.com/minio/minio-java/blob/master/examples/PresignedPostPolicy.java
此外,我嘗試了此代碼段https://gist.github.com/phstudy/3523576726d74a0410f8
PS我真正的目標是從客戶端上傳文件,且文件大小受限制,例如在那里或那里 。 我可以創建presignS3UploadLink ,但是無法設置最大大小。
因此,由於缺少x-amz-security-token
參數,解決方案https://github.com/minio/minio-java/blob/master/examples/PresignedPostPolicy.java無法正常工作。
我們需要使用session-token
(從亞馬遜獲取)來創建POST政策和表單發布-https: //docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html
minio的示例代碼:
conditions.add(new String[]{"eq", "$x-amz-security-token", sessionToken});
formData.put("x-amz-security-token", sessionToken);
PS x-amz-security-token
是必要的,因為使用的臨時安全證書- https://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.