我正在使用AWS进行一些测试,我想出了以下问题。
用例: - API网关 - Lambda - S3 - DynamoDB
如果我将S3对象的链接保存到DynamoDB中的项目中,那么现在是否可以一次下载所有内容?我的意思是,如果我扫描表格,我可以在同一个API调用中一起下载包含信息的对象吗?
这个想法是通过移动应用程序拨打电话,但现在我只是在检查是否可行,否则我可能需要重新评估设计。
答案 0 :(得分:0)
直接答案:否
查看S3 Java SDK的以下链接,没有批处理获取对象的方法 https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3Client.html
如果您发现任何Github回购声称批量下载s3对象,他们肯定会迭代您传递给他们的所有路径。
答案 1 :(得分:0)
将对象保存在DynamoDB项目中是一个非常糟糕的想法(您将需要更多的写入/读取容量),一切都将最终花费您更多。您选择的设计是推荐的设计。
如果您确定100%的时间需要将数据存储为S3对象,则必须调用DynamoDb然后调用S3(可能多次) - 无法在单个服务中调用这两个服务API调用。
更好的设计(如果适用于您的特定情况)是fecth DynamoDB中的项目,然后预先签署这些S3网址,因此应用程序只能在需要时检索此数据。