gpt4 book ai didi

ruby-on-rails - 尝试使用Fog和Carrierwave将文件保存到Google Cloud Storage时出现"Excon::Error::Forbidden"错误

转载 作者:行者123 更新时间:2023-12-04 04:28:37 25 4
gpt4 key购买 nike

我正在使用Carrierwave和Fog将图像存储在云上。我以前使用的是Amazon S3作为实际存储,没有任何问题。但是我切换到Google Cloud Storage,现在每次尝试保存任何内容时都会遇到以下错误:

Excon::Error::Forbidden in GalleriesController#create

Expected(200) <=> Actual(403 Forbidden) excon.error.response :body => "InvalidSecurityThe provided security credentials are not valid.Request was not signed or contained a malformed signature" :cookies => [ ] :headers => { "Alt-Svc" => "hq=\":443\"; ma=2592000; quic=51303433; quic=51303432; quic=51303431; quic=51303339; quic=51303335,quic=\":443\"; ma=2592000; v=\"43,42,39,38,35\"" "Content-Length" => "224" "Content-Type" => "application/xml; charset=UTF-8" "Date" => "Tue, 01 May 2018 22:03:23 GMT" "Server" => "UploadServer" "Vary" => "Origin" "X-GUploader-UploadID" => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" } :host => "[directory].storage.googleapis.com" :local_address => "xxx.xxx.x.xxx" :local_port => xxxxx :path => "/uploads%2Fimage.png" :port => 443 :reason_phrase => "Forbidden" :remote_ip => "xxx.xxx.x.xx" :status => 403 :status_line => "HTTP/1.1 403 Forbidden\r\n"



初始值设定项/carrierwave.rb
CarrierWave.configure do |config|
config.fog_provider = 'fog/google'
config.fog_credentials = {
provider: 'Google',
google_storage_access_key_id: 'GOOGxxxxxxxxxxx',
google_storage_secret_access_key: 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
}
config.fog_directory = 'xxxxxxxxxxx'
#config.fog_public = false
#config.fog_attributes = { cache_control: "public, max-age=#{365.day.to_i}" }
end

上传器
class PhotoFileUploader < CarrierWave::Uploader::Base
include CarrierWave::MiniMagick

storage :fog

def fix_exif_rotation
manipulate! do |img|
img.tap(&:auto_orient)
end
end

process :fix_exif_rotation
process :resize_to_fit => [800, 56000]

version :thumb do
process resize_to_fit: [300, 56000]
end
end

Gemfile
gem "fog-google"
gem "google-api-client", "> 0.8.5", "< 0.9"
gem "mime-types"

似乎key_id或secret_key存在问题,但是我只是从Google Cloud Storage设置页面的互操作性部分复制并粘贴了这两者。而且我不知道如何测试它们是否有效。我的请求来自本地主机,如果那很重要。

我在SO上发现了一些类似的错误,但它们都与Amazon有关,而且似乎不适用于我正在做的事情。

有人对我如何调试它有任何想法吗?

最佳答案

您应该在for_directory中使用有效的目录名称。

替换config.fog_directory = '[directory]'config.fog_directory = 'name_of_fog_folder'

希望这会有所帮助。

关于ruby-on-rails - 尝试使用Fog和Carrierwave将文件保存到Google Cloud Storage时出现"Excon::Error::Forbidden"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50125554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com