bucket_name = "bucket name"
    file_name = 'file_name.csv'

    storage = Google::Cloud::Storage.new(
      project_id: "project id",
    )
      file = storage.bucket(bucket_name).file(file_name)

      file.download(to: "path/to/local/file/#{file_name}")

当我下载具有上面代码的文件时,我会收到错误:"未知关键字::soft_deleted".我不知道为什么,请帮忙!

预计:我可以从GMS下载文件

推荐答案

查看该错误,我相信您正在try 下载100个文件.

当您在启用软删除的情况下从存储桶中删除对象时,Cloud Storage会将删除的对象移动到101状态.在这种状态下,该对象对存储桶不可见,除非您显式列出或恢复软删除对象.

GoogleMarch 25, 2024上引入了此103功能.默认情况下,新创建的Cloud Storage buckets会启用软删除功能.此功能允许在七天的固定保留期内恢复已删除的对象.但是,一旦此期限到期,这些对象就会从云存储中永久删除并且无法再恢复.

您可能在启用软删除功能并try 下载文件时意外删除了文件.如果您要下载这些文件,则必须首先恢复这些对象(如果它们仍在保留期内).

您可以按照this document将对象和此文档恢复到remove the soft delete policy.

如需更多参考,请判断这Cloud Storage API class Google::Cloud::Storage::File.

Ruby-on-rails相关问答推荐

如何在不触发每次编译的情况下运行`bin/rails测试`?

错误:部署到 Heroku 时找不到模块tailwindcss/defaultTheme

组织和/或存储我一直在 RSpec 中使用的模拟对象的最佳方式是什么?

验证模型属性大于另一个

循环大量记录时 Ruby on Rails 内存泄漏; find_each 没有帮助

你能从 Heroku dynos/workers 中获得多少性能?

在 Rails 中将毫秒转换为格式化日期

为什么我要使用 unicorn 或 thin 而不是 WEBrick 用于开发目的?

删除链接在 Rails 3 视图中发送Get而不是Delete

如何显示 RSpec 测试生成的 SQL 查询日志(log)?

警告:引用了顶级常量

如何编写 Capybara 断言来判断按钮的存在及其启用或禁用状态?

减go Ruby 中的日期并以分钟为单位得到差异

如何打印出范围之间的随机数?

Test::Unit Rails - 如何断言一个数字大于另一个?

Ruby on Rails:如何在 select_tag 中使用默认占位符?

如何在 rake 任务中强制 RAILS_ENV?

Rails - 邮件,将正文作为纯文本获取

将现有的 html.erb 转换为 Haml

sass-rails 助手image-url、asset-url在 rails 3.2.1 中不起作用