找不到任何关于如何列出S3存储桶中所有文件的好的解释,这让我很沮丧。
我有一个大约有20张图片的桶。我想做的就是列出它们。有人说“只要使用S3.list-method”。但是没有任何特殊的库就没有S3.list-method。我有一个S3.get-method,我不去工作。如果有人告诉我如何简单地从S3桶中获得所有文件(文件名)的列表,我会很感激。
val S3files = S3.get(bucketName: String, path: Option[String], prefix: Option[String], delimiter: Option[String])
返回一个未来[响应]
我不知道如何使用这个s3. get。列出我的S3桶中的所有文件的最简单的方法是什么?
非常感谢您的回答!
4条答案
按热度按时间rjee0c151#
在Scala中,您现在可能需要使用Amazon的官方SDK for Java,它提供了
AmazonS3::listObjects
方法:注意
ObjectListing
对象上的递归:由于bucket中键的列表是通过批处理完成的(使用这里介绍的分页系统),因此
s3Client.listObjects(bucket).getObjectSummaries.asScala.map(_.getKey)
最多只返回前1000个键。因此,当
ObjectListing::isTruncated
为真时,递归调用通过请求下一页键来获取桶中的所有键。小心内存问题,如果你的水桶是巨大的虽然。
s3Client
可以构建为:在
build.sbt
和latest version中满足以下要求:型
tyg4sfes2#
在此处使用库:
https://github.com/Rhinofly/play-s3
您应该能够执行以下操作:
您必须根据您的凭据对此进行一些调整,但是示例显示了如何进行调整。
8wtpewkr3#
这是我的解决方案。感谢@cmbaxter
vuktfyat4#