【问题标题】:Listen to object change in AWS S3 (AWS SDK)监听 AWS S3 中的对象更改(AWS 开发工具包)
【发布时间】:2016-09-06 22:33:18
【问题描述】:

在 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

这很好,我想知道是否可以让 listener 使用 AWS Ruby SDK 监听上传到 my-bucket/customers/products/ 的任何新文件对象?如果可以,怎么做?

【问题讨论】:

    标签: ruby amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    不能直接用代码完成。 但是,您可以做的是在 SQS 队列上设置一个侦听器(您可以使用代码执行此操作),并在 S3 中创建一个事件,以便在您的存储桶中完成的每次更改时将消息推送到队列。

    对于SQS 文档,请follow here(非常简单)。

    要配置事件,您可以关注此detailed link,对于更短的版本,请执行以下操作(首先创建SQS 队列):

    1. 转到您的存储桶(通过 AWS 控制台)。
    2. 点击属性标签(在左上角)。
    3. 展开事件
    4. 点击添加通知
    5. 选择您想收听的事件类型。
    6. 可选,如果您希望事件应用于具有特定前缀的对象,请指定前缀。
    7. 可选,,后缀相同。
    8. 将其发送到 SQS 队列
    9. 把队列的ARN

    现在,您需要对Ruby 做的就是监听(使用轮询机制)队列中的新消息。 这些消息将在某些架构中具有一些JSON 格式,请使用它。

    这应该可以解决您的问题。

    【讨论】:

      猜你喜欢
      • 2011-11-10
      • 1970-01-01
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 2019-06-26
      • 2017-09-06
      • 2020-08-05
      相关资源
      最近更新 更多