Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java AmazonS3初学者查询_Java_Amazon S3 - Fatal编程技术网

Java AmazonS3初学者查询

Java 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似乎是做事的正确方式 我的理解是正确的还是有第三种更合理的方法? 您可能希望使

我有一个分布式系统,由两个应用程序组成aB

B调用a的特定API,为其执行底层工作流,在此期间生成文件a并将其上载到
S3
A在上传之前对文件进行客户端加密。对B的API响应是上传文件的bucket+链接位置。

现在在稍后的时间点B希望从S3下载该文件。

有两种方法可以做到这一点-

  • B端实现下载功能,在这种情况下,需要知道A用于上传的AWS密钥
  • A
    下载功能公开到B,这样B就不需要知道A用于上传的AWS密钥


  • 选项2似乎是做事的正确方式

    我的理解是正确的还是有第三种更合理的方法?

    您可能希望使用查询字符串验证来考虑一个“中途的房子”。基本上,当B想要下载文件时,它会向a发出请求,要求提供下载链接。然后A生成一个时间限制,B可以使用该时间限制直接从S3下载文件


    当您将问题标记为“java”时,我假设您使用的是AWS java SDK,在这种情况下,您需要的方法是

    中的
    generateDesigneDurl
    ,基于有限的信息量,您已经回答了自己的问题。选项2,如果A有B需要的东西,A应该是看门人,只公开它需要的东西。(提供给客户B的数据)。