Java AmazonS3初学者查询
我有一个分布式系统,由两个应用程序组成a和BJava AmazonS3初学者查询,java,amazon-s3,Java,Amazon S3,我有一个分布式系统,由两个应用程序组成a和B B调用a的特定API,为其执行底层工作流,在此期间生成文件a并将其上载到S3A在上传之前对文件进行客户端加密。对B的API响应是上传文件的bucket+链接位置。 现在在稍后的时间点B希望从S3下载该文件。 有两种方法可以做到这一点- 在B端实现下载功能,在这种情况下,需要知道A用于上传的AWS密钥 让A将下载功能公开到B,这样B就不需要知道A用于上传的AWS密钥 选项2似乎是做事的正确方式 我的理解是正确的还是有第三种更合理的方法? 您可能希望使
B调用a的特定API,为其执行底层工作流,在此期间生成文件a并将其上载到
S3
A在上传之前对文件进行客户端加密。对B的API响应是上传文件的bucket+链接位置。现在在稍后的时间点B希望从S3下载该文件。
有两种方法可以做到这一点-
下载功能公开到B,这样B就不需要知道A用于上传的AWS密钥
选项2似乎是做事的正确方式
我的理解是正确的还是有第三种更合理的方法? 您可能希望使用查询字符串验证来考虑一个“中途的房子”。基本上,当B想要下载文件时,它会向a发出请求,要求提供下载链接。然后A生成一个时间限制,B可以使用该时间限制直接从S3下载文件
当您将问题标记为“java”时,我假设您使用的是AWS java SDK,在这种情况下,您需要的方法是中的
generateDesigneDurl
,基于有限的信息量,您已经回答了自己的问题。选项2,如果A有B需要的东西,A应该是看门人,只公开它需要的东西。(提供给客户B的数据)。