听对象AWS S3(AWS SDK)
问题描述:
在AWS S3,我有一个桶命名'my-bucket'
变化,my-bucket
我有以下结构下:听对象AWS S3(AWS SDK)
my-bucket/
customers/
products/
- data1.txt
- data2.txt
与AWS Ruby SDK,我可以列出所有下的项目my-bucket
由Ruby代码:
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
这是好的,我想知道是否有可能有一个听众听上传到my-bucket/customers/products/
与AW任何新的文件对象S Ruby SDK?如果可能的话,该怎么做?
答
它不能直接用代码完成。 但是,您可以执行的操作是在SQS
队列(您可以使用代码执行此操作)上拥有一个监听器,并在S3
中创建一个事件,以便在您的存储桶中完成的每次更改中将消息推送到队列中。
对于SQS
文件请follow here(这是非常简单的)。
对于配置事件你可以按照这个detailed link,以及较短版本的这种,做如下(首先创建一个SQS
队列):
- 转到您的桶(通过AWS控制台 )。
- 单击属性选项卡(位于左上角)。
- 展开事件。
- Click 添加通知。
- 选择您想要收听的事件类型。
- 可选,如果您希望将事件应用于具有特定前缀的对象,请指定前缀。
- 可选,,后缀相同。
- 发送到SQS队列。
- 放入队列的
ARN
。
现在,您只需要使用Ruby
就可以侦听(使用轮询机制)队列中的新消息。 这些消息在某个模式中会有一些JSON
的格式,请使用它。
这应该解决您的问题。