一年多来,我有一个有效的Rails应用程序,可以将文件上传到Google Cloud Storage。最近,我发现所有新文件(图像)都不再显示在该网站上。
我没有触摸Google云端存储上的任何内容-我没有更改任何访问设置。
我为每个对象的所有用户启用了段级访问。但是对于新文件,由于某种原因,访问将被覆盖。也就是说,访问“并不适合所有人”。
我不明白这是怎么发生的。
当我尝试打开一个新文件时,出现错误:
匿名呼叫者没有storage.objects.get访问files.mysite.com/uploads/images/51/ar/6h/0dafasdae64590c0.jpg
我当前使用的代码是:
# frozen_string_literal: true
CarrierWave.configure do |config|
config.storage = :file
config.permissions = 0o644
config.directory_permissions = 0o755
# config.cache_dir = Rails.root.join('tmp')
config.cache_dir = '/tmp'
if Rails.env.development?
config.root = Rails.root.join('public')
config.asset_host = "#{Settings.app.protocol}#{Settings.app.host}"
end
if Rails.env.production?
config.fog_provider = 'fog/google'
config.fog_credentials = {
path_style: true,
provider: 'Google',
google_storage_access_key_id: Settings.api.google.storage.access_key,
google_storage_secret_access_key: Settings.api.google.storage.secret_access_key
}
config.fog_directory = Settings.api.google.storage.bucket
config.storage = :fog
config.asset_host = "https://#{Settings.api.google.storage.bucket}"
end
end
module CarrierWave
module MiniMagick
def quality(percentage)
manipulate! do |img|
img.quality(percentage.to_s)
img = yield(img) if block_given?
img
end
end
end
end