我知道,并且我在ListObjectsRequest中使用了s3Client.listObjects(req)方法。它运作完美。您创建一个对象:
ListObjectsRequest ()
.withBucketName (bucket)
.withPrefix (folderPath)
.withDelimiter (DELIMITER)
在某些情况下,您已经模拟了文件夹结构,这对获取摘要非常有用。
可以使用某种方式使用相同的前缀和定界符逻辑获取完整的对象而不是摘要。当您要获取一些有限的对象时,这很有用。
另一种方法是启动一个列表,然后获取“ n”个,但我想知道是否有任何方法可以发起一个呼叫(一个http呼叫),
类似:
GetObjectsRequest ()
.withBucketName (bucket)
.withPrefix (folderPath)
.withDelimiter (DELIMITER)
并返回完整的对象...(或分页列表)
答案 0 :(得分:1)
基础S3 API中没有此功能。对象必须单独获取。想到的唯一操作是在单个API操作的上下文中对多个对象进行操作的操作是multi-object delete。
任何给定的S3存储桶当然都可以处理大量并发GET
请求,因此,如果您利用异步和/或多线程的优势,就可以在短时间内获得所有对象您选择的语言提供的线程功能。
如果对象主体很小,您还可以将其封装在Lambda函数中,该函数将完成所有工作并打包所有内容,从而使调用代码更加整洁。但是Lambda函数有一个payload limit of 6MB来进行请求和响应...因此,要使该方法起作用,对象就必须很小。