我找不到如何使用 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/