Je cherche à utiliser Carrierwave avec Amazon S3 dans mon application Rails, et je continue à obtenir l'erreurCarrierwave Télécharger avec Amazon S3 - 403 Erreur interdite
"Excon::Errors::Forbidden (Expected(200) <=> Actual(403 Forbidden)."
<Error><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your key and signing method.
Je reçois aussi l'avertissement
"[WARNING] fog: the specified s3 bucket name() is not a valid dns name, which will negatively impact performance. For details see: http://docs.amazonwebservices.com/AmazonS3/latest/dev/BucketRestrictions.html"
config/initializers/carrierwave.rb:
CarrierWave.configure do |config|
config.fog_credentials = {
provider: 'AWS',
aws_access_key_id: ENV["AWS_ACCESS_KEY_ID"],
aws_secret_access_key: ENV["AWS_ACCESS_KEY"]
}
config.fog_directory = ENV["AWS_BUCKET"]
end
Mon nom de compartiment est "buildinprogress"
J'ai vérifié que mon ID de clé d'accès et ma clé d'accès étaient corrects.
Comment réparer cette erreur?
Je trouve que si je hardcode le nom du compartiment dans mon fichier carrierewave.rb, cela fonctionne , mais lorsque le nom du compartiment est défini en tant que variable d'environnement, cela ne fonctionne pas. – scientiffic
Cela ne peut pas être; vous avez probablement foiré quelque chose avec les variables ENV alors. Faites un 'ENV [" AWS_BUCKET "]. Inspect' dans le fichier d'initialisation et vérifiez que le bon nom de seau est imprimé ... – severin