簡體   English   中英

如何構建Amazon S3 Presigned PostPolicy以在Java SDK 2.0中上傳文件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM