Ruby on rails 不能';t解密config/credentials.yml.enc。也许你传错钥匙了?

Ruby on rails 不能';t解密config/credentials.yml.enc。也许你传错钥匙了?,ruby-on-rails,amazon-web-services,amazon-s3,ruby-on-rails-6,Ruby On Rails,Amazon Web Services,Amazon S3,Ruby On Rails 6,我最近删除了我的本地项目,但做了一个git克隆,并从我上次提交的地方开始。当我尝试将图像上载到AWS(已配置)时,出现以下错误: Aws::Sigv4::Errors::MissingCredentialsError in RentalsController#create Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the fol

我最近删除了我的本地项目,但做了一个git克隆,并从我上次提交的地方开始。当我尝试将图像上载到AWS(已配置)时,出现以下错误:

Aws::Sigv4::Errors::MissingCredentialsError in RentalsController#create


Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?
我试图查看我的
credentials.yml
文件是否有任何错误,但当我输入此命令时:

EDITOR="code --wait" rails credentials:edit
…我得到这个错误:

Aws::Sigv4::Errors::MissingCredentialsError in RentalsController#create


Cannot load `Rails.config.active_storage.service`: missing credentials, provide credentials with one of the following options: - :access_key_id and :secret_access_key - :credentials - :credentials_provider
Couldn't decrypt config/credentials.yml.enc. Perhaps you passed the wrong key?

可能是什么问题?

您缺少
master.key

创建新项目时,rails将设置
credentials.yml.enc
和匹配的
master.key
文件以访问凭据。
master.key
文件也将自动添加到gitignore中,因此如果您将项目本地删除并再次克隆,您的
master.key
将丢失

解决此问题的唯一方法是设置新的
凭证.yml.enc
,然后再次向其中添加AWS凭证

首先,您需要删除现有的
凭据.yml.enc
,然后运行:
rails凭据:编辑
以创建一个新的凭据。

感谢您发布此答案,它帮助我解决了与OP相同的问题。不过,我还有一个问题,这意味着我有一个更改的
credentials.yml.enc
文件,可以进行提交。我的直觉是,我不应该提交这个,因为它是用我的生产应用程序的不同主密钥创建的。对于此更改的文件,什么是好的解决方案?是否应该忽略它?您应该提交此项并为生产应用程序设置新的
master.key
。您无法使用旧文件,因为您丢失了
master.key
。如果您没有丢失
master.key
,那么您根本不应该创建一个新的
credentials.yaml.enc
,只需将
master.key
放回给那些不经常进行首次部署的人,这很容易忘记。由于这个错误的来源已经被很好地理解了,Rails本身当然可以提供一个更有用的错误消息,在给定的上下文中指出确切的根本原因。