我需要在运行时接受搜索字段,然后在控制台上的特定AWS s3存储桶abd显示文件名下搜索存储的xml文件。
答案 0 :(得分:0)
下面的Python代码(我知道您在Java中曾问过,请当作参考)列出了特定存储桶中的所有对象,然后仅打印文件名包含特定文本字符串的对象。您可以根据自己的要求增强此代码:
import boto3
client = boto3.client('s3')
testString='someString'
objResp = client.list_objects(Bucket='my-specific-bucket')
for i in objResp['Contents']:
if testString in i['Key']:
print (i['Key'])
还请注意,boto3 Python中的list_objects最多返回1000个对象,因此,如果您的存储桶中有更多对象,则还必须通过使用'IsTruncated'标志来解决该情况。请检查官方文档。
答案 1 :(得分:0)
看看这个:https://docs.aws.amazon.com/AmazonS3/latest/dev/ListingObjectKeysUsingJava.html
这是AWS提供的示例代码,用于使用Java SDK将所有对象列出到存储桶中。 您可以在文档中找到所有SDK文档。例如,可以添加前缀。
答案 2 :(得分:0)
从S3存储桶中获取所有对象,并迭代所有对象以查找具有以下名称的对象:
ObjectListing objects = amazonS3.listObjects("s3-bucket");
objects.getObjectSummaries().forEach(object -> {
if (object.getKey().matches("YOUR_PATTERN")) {
// do what you want to do with object
System.out.println(object.getKey());
}
}
);