简体   繁体   English

如何使用ruby aws s3一次删除多个对象

[英]how to delete many objects at once using ruby aws s3

I can't find how to delete multiple objects at once using the ruby aws sdk , in the doc they have a code example on how to delete a folder that contains files : 我找不到如何使用ruby aws sdk一次删除多个对象,在doc中他们有一个关于如何删除包含文件的文件夹的代码示例:

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

What am looking for is, providing files keys and delete them at once, something like this : 我们正在寻找的是,提供文件密钥并立即删除它们,如下所示:

    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 

Any idea ? 任何的想法 ?

You can use delete_objects As the documentation example: 您可以使用delete_objects作为文档示例:

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

so in your example: 所以在你的例子中:

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}'
  ]
 }
})

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM