我有一个分布式系统,包括2个应用程序 A 和 B 。
B调用A的特定API,为其执行基础工作流,在此期间生成文件并将其上载到S3
。 A 在上传之前对文件进行客户端加密。对 B 的API响应是上传文件的存储桶+链接位置。
现在稍后 B 希望从S3下载文件。
有两种方法可以做到这一点 -
download
功能,以便 B 无需了解AWS密钥 A 用于上传。
选项2似乎是正确的做事方式。
我的理解是正确的还是第三种更合理的方法?
答案 0 :(得分:0)
您可能希望使用查询字符串身份验证来考虑“中途宿舍”。基本上,当B想要下载文件时,它向A请求下载链接。然后A生成一个有时间限制的pre-signed request URL,然后B可以直接从S3下载文件。
当您标记了您的问题“java”时,我假设您正在使用AWS Java SDK,在这种情况下,您需要的方法是AmazonS3Client中的generatePresignedUrl