java Amazon S3签名的URL可从外部访问

koaltpgm  于 2023-01-19  发布在  Java
关注(0)|答案(1)|浏览(245)

因此,我们有一个用例,我们需要能够下载S3文件从外面的世界在互联网上。为此,我们正在创建s3 pre signed url如下。我的疑问是,我们如何才能访问它在互联网上?这些网址是默认访问在互联网上。或者我们需要创建一个代理。

https://<bucket-name>.s3.amazonaws.com/<filename><some other parameters>
mkshixfv

mkshixfv1#

您显示的URL不是预签名的URL。预签名的URL如下所示:
https://bucketxxxxxx.s3.amazonaws.com/note.txt?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20230117T153509Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3599&X-Amz-Credential=AKIA33JWY3BX2TYWxxxxxxxxxxx%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Signature=e55142af548e46fc2870bb03331d0e9aa9ffbd21xxxxxxxxxxxxxxxxxx
生成有效的“预签名”URL后,您就不需要代理了。用户可以在指定的时间窗口内下载对象,该时间窗口在创建GetObjectPresignRequest时定义。

GetObjectPresignRequest getObjectPresignRequest = GetObjectPresignRequest.builder()
                   .signatureDuration(Duration.ofMinutes(60))
                   .getObjectRequest(getObjectRequest)
                   .build();

您可以在AWS Code Github中查看使用AWS SDK for Java v2创建预签名URL的正确方法:
https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/javav2/example_code/s3/src/main/java/com/example/s3/GetObjectPresignedUrl.java
如需了解有关使用AWS SDK for Java v2创建它们的详细信息,请参阅AWS Java V2开发人员指南中的此主题。
Working with Amazon S3 presigned URLs

相关问题