在AWS S3中,我有一个名为'my-bucket'
的存储桶,位于my-bucket
下面我有以下结构:
my-bucket/
customers/
products/
- data1.txt
- data2.txt
使用AWS Ruby SDK,我可以通过ruby代码列出my-bucket
下的所有项目:
require 'aws-sdk'
s3 = Aws::S3::Resource.new(region: 'us-west-2')
bucket = s3.bucket('my-bucket')
# Show only the first 50 items
bucket.objects.limit(50).each do |item|
puts "Name: #{item.key}"
end
这很好,我想知道是否可以让监听器监听使用AWS Ruby SDK上传到my-bucket/customers/products/
的任何新文件对象?如果可能的话,怎么做?
答案 0 :(得分:2)
无法直接使用代码完成。
但是,你可以做的是在SQS
队列上有一个监听器(你可以用代码做)并在S3
中创建一个事件,用于在每次完成的更改时将消息推送到队列在你的桶里。
对于SQS
文档,请follow here(非常简单)。
要配置事件,您可以按照此detailed link进行操作,对于此版本的较短版本,请执行以下操作(首先创建SQS
队列):
ARN
。现在,您需要对Ruby
执行的操作是侦听(使用轮询机制)队列中的新消息。
这些消息在某些模式中会有一些JSON
格式,可以使用它。
这应该可以解决你的问题。