Cloudflare R2 - 从存储桶中删除所有对象

Phi*_*l-6 5 amazon-s3 cloudflare cloudflare-r2

有没有一种简单的方法可以从 Cloudflare R2 存储桶中删除所有对象?

这不是我想要在生产中做的事情,而是我想要在开发中测试时做的事情。我希望能够从仪表板一次选择超过 25 个对象,或从 CLI 中删除所有对象。

Joe*_*ton 17

感谢 Juan Fontes 上面的评论,我尝试了这个,下面的工作成功了。

aws s3 rm s3://<bucket-name> --endpoint-url https://<cloudflare-id>.r2.cloudflarestorage.com --recursive --dryrun
Run Code Online (Sandbox Code Playgroud)

当它为您工作后,在没有--dryrun标志的情况下重新运行。

不要忘记先配置AWS CLI。


Phi*_*l-6 1

我找到了一种使用 ActiveStorage 从 Rails Console 执行此操作的方法

ActiveStorage::Blob.services.fetch(:cloudflare_user_pictures).bucket.objects.batch_delete!
Run Code Online (Sandbox Code Playgroud)

:cloudflare_user_pictures您的服务名称在哪里。

我在测试套件结束时运行此命令,以从 cloudflare 上的测试存储桶中删除所有图片:

Minitest.after_run do
  ActiveStorage::Blob.services.fetch(:cloudflare_user_pictures).bucket.objects.batch_delete!
  ActiveStorage::Blob.services.fetch(:cloudflare_chat_message_attachments).bucket.objects.batch_delete!
end
Run Code Online (Sandbox Code Playgroud)