ruby-on-rails - 如何使用 ruby​​ aws s3 一次删除多个对象

标签 ruby-on-rails ruby amazon-s3 aws-sdk

我找不到如何使用 ruby aws sdk 一次删除多个对象,在文档中,他们有一个关于如何删除包含文件的文件夹的代码示例:

# batch operations, delete objects in batches of 1k
bucket.objects(prefix: '/tmp-files/').delete

我正在寻找的是,提供文件 key 并立即删除它们,如下所示:

    bucket.objects(keys: [
    'avatars/0b722c42-4003-42cc-887c-b820cad3aed9/avatar1.png',
'avatars/be1275f1-664f-4d47-9890-b5b2a066a18f/avatar2.jpg', 
    'avatars/f5051ed2-b2e7-4844-bdc7-ca19c1900ce8/avatar3.gif'
    ]).delete 

有什么想法吗?

最佳答案

您可以使用 delete_objects 作为文档示例:

bucket.delete_objects({
  delete: { # required
    objects: [ # required
      {
        key: "ObjectKey", # required
        version_id: "ObjectVersionId",
      },
    ],
    quiet: false,
  },
  mfa: "MFA",
  request_payer: "requester", # accepts requester
})

所以在你的例子中:

bucket.delete_objects({
 delete:{
  objects: [
   {key: 'avatars/0b722c42-4003-42cc-887c-b820cad3aed9/avatar1.png'},
   {key:'avatars/be1275f1-664f-4d47-9890-b5b2a066a18f/avatar2.jpg'}, 
   {key:'avatars/f5051ed2-b2e7-4844-bdc7-ca19c1900ce8/avatar3.gif}'
  ]
 }
})

关于ruby-on-rails - 如何使用 ruby​​ aws s3 一次删除多个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51383634/

相关文章:

javascript - 尝试从排列的 JSON 键中删除引号

ruby-on-rails - activeadmin 单例资源

php - 如何使用 Guzzle 修改 curl 的超时时间?

amazon-web-services - AWS S3 : An error occurred (AccessDenied) when calling the GetObject operation: Access Denied

jquery - 如何使用jQuery调整自定义对话框的位置?

ruby-on-rails - Ruby on Rails - 如何处理 omniauthable 设计中的陈旧访问 token ?

sql - 索引名称太长 attachinary/postgresql

python - 将本地端点与 boto2 一起使用

ruby-on-rails - Devise + Omniauth,一个没有回调阶段的提供者

ios - 没有用户帐户的 iOS 安全 API