如何使用Ruby应用程序从AWS S3获取密钥不完整的对象

如何使用Ruby应用程序从AWS S3获取密钥不完整的对象,ruby,amazon-web-services,amazon-s3,Ruby,Amazon Web Services,Amazon S3,我试图在Ruby应用程序中使用特定的单词从AWS S3获取对象。有很多文件都有“lesson_id_”作为关键字的一部分,我很乐意下载包括这个关键字在内的所有文件。但是如果我用“lesson\u id\u*”搜索,它会说,AWS::S3::Errors::NoSuchKey没有这样的键 我想高效地下载所有文件,包括这个关键字。请给我任何反馈如何使用“关键字”而不是完美的“关键” 你可以这样做。获取所有对象并在下载它们之前进行检查。然后,您可以使用正则表达式或任何您喜欢的方法来检查 require

我试图在Ruby应用程序中使用特定的单词从AWS S3获取对象。有很多文件都有“lesson_id_”作为关键字的一部分,我很乐意下载包括这个关键字在内的所有文件。但是如果我用“lesson\u id\u*”搜索,它会说,AWS::S3::Errors::NoSuchKey没有这样的键

我想高效地下载所有文件,包括这个关键字。请给我任何反馈如何使用“关键字”而不是完美的“关键”


你可以这样做。获取所有对象并在下载它们之前进行检查。然后,您可以使用正则表达式或任何您喜欢的方法来检查

require 'aws-sdk'

s3 = Aws::S3::Resource.new(region: 'us-west-2')

bucket = s3.bucket('your-bucket')

bucket.objects.limit(1000).each do |item|
    if item.key.start_with?('lesson_id_') 
        obj = bucket.object(item.key)
        obj.get(response_target: item.key)
    end
end
表示您正在查找类似于
bucket.objects的内容。带有前缀('lesson\u id')
。。。当然,您不希望使用
*
——您指定的是字符串前缀,不支持通配符。
require 'aws-sdk'

s3 = Aws::S3::Resource.new(region: 'us-west-2')

bucket = s3.bucket('your-bucket')

bucket.objects.limit(1000).each do |item|
    if item.key.start_with?('lesson_id_') 
        obj = bucket.object(item.key)
        obj.get(response_target: item.key)
    end
end